2012-08-07 70 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。只有當你確定這是正常工作導航到子域。