NodeJs与多个子域的会话问题

时间:2017-09-14 11:37:44

标签: node.js session express cookies subdomain

我们正在研究express node.js应用程序,其中我们正在使用2个子域,例如app.example.com& blog.example.com 两个应用程序都在不同端口的同一台服务器上运行。

我们正在使用快速会话,当有人登录到app.example.com时,我在浏览器中创建了一个新的cookie,并且所有东西都可以正常使用该特定域,但是当用户打开blog.example.com时无法使用相同的cookie,而是为blog.example.com创建一个新的。

我们已尝试使用cookie的所有可能性:{domain:“。example.com”}。 我们还使用CORS来设置标题。

我们已检查Sharing Redis Sessions Across Node AppsShare sessions with redis and passport on a subdomain?以使用“.example.com”定义域名,但它无效。

我们缺少什么?

代码

app.use(function(req, res, next) {
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Origin', "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept');
 genid =req.cookies['connect.sid'] ? req.cookies['connect.sid'] : "";


 next();
 });


 app.use(session({ secret: 'XXXX',resave: true,saveUninitialized: false, 
 store:sessionStore, cookie:{domain:".example.com",sameSite:false}}));

0 个答案:

没有答案