如何在NodeJS中使用子域实现CSRF

问题描述

const csrfProtection = csrf({ 
    cookie: { 
      domain: '.' + config_web.domain,secure: true,httpOnly: true,//sameSite: 'none'
    },});

app.use(expresssession({
   store: new RedisStore({ client: redisClient }),secret: 'keyboard cat',resave: false,saveUninitialized: false,cookie: { 
     domain: '.' + config_web.domain,maxAge: parseInt(cookiesTime),httpOnly: true 
   }
}));

const corsOptions = {
  origin: ['https://api.domain.com','https://main.domain.com'],methods: 'POST',credentials: true,allowedHeaders: '*',//['Content-Type','Authorization','X-Requested-With'],optionsSuccessStatus: 200
}

app.use(cors(corsOptions));

我有主站点https://main.domain.com,将通过https://api.domain.com调用api。 分离两个子域后,api调用总是从csrf失败。我想知道我是否设置了错误的Cookie内容?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)