2012-08-07 89 views
8

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

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

我把我的常规网站的会话变量,其中的子域是未定义例如http://example.com像这样:

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

但是当我重定向他们subdomain.example.com的会话没有rep_id键设置任何东西。似乎会话正在子域之间重置。我如何解决这个问题?

回答

4

的几点思考:

尝试删除从.example.com时期。我的想法是,你试图设置一个只有子域名的cookie,而仍然在根域。我已经阅读过在example.com上设置的cookies也可以在所有子域上使用。

尝试不立即将用户重定向到子域,以首先验证该Cookie是否在您的根域中工作。检查服务器的响应头,然后查看您的浏览器是否在下一个请求中保存了Cookie。只有当你确定这是正常工作导航到子域。