我们正在研究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 Apps和Share 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}}));