Express中的子域中的会话

dsh*_*per 9 subdomain vhosts session-cookies node.js express

我在Express with Node中使用vhost功能来管理我的应用程序的多个子域.该应用程序使用相同的会话密钥和密钥,我相信我已经使用了正确的会话cookie设置:

cookie: {
          path     : '/',
          domain   : '.example.com',
          httpOnly : false,
          maxAge   : 1000*60*60*24*30*12    //one year(ish)
        }
Run Code Online (Sandbox Code Playgroud)

我在我的常规站点上设置了一个会话变量,子域未定义,例如http://example.com,如下所示:

req.session.rep_id = rep._id;
res.redirect('https://' + company.name + '.example.com/');
Run Code Online (Sandbox Code Playgroud)

但是当我将它们重定向到subdomain.example.com时,会话没有将rep_id键设置为任何内容.似乎会话正在子域之间重置.我该如何解决这个问题?

rdr*_*rey 5

一些想法:

尝试从 中删除句点.example.com。我的想法是,您试图在根域上设置仅子域的 cookie。我读到,设置的 cookieexample.com也将在所有子域上可用。

尝试不要立即将用户重定向到子域,首先验证 cookie 是否在您的根域上工作。检查服务器的响应标头,然后查看浏览器是否在下一个请求中保留了 cookie。仅当您确定其正常工作时,才导航到子域。