2012-03-30 44 views
4

沒有設定我有我的應用程序的NodeJS最小連接會話設置:連接的NodeJS會話cookie在某些機器

connect.cookieParser(), 
connect.session({ secret: 'asdfg', cookie: { maxAge: 60 * 60 * 1000 }}), 

但在其他機器上測試我的網站時,會話cookie不被設置在所有。在我的Mac上,會話cookie在Chrome和Firefox中都像普通一樣設置。在我的虛擬Windows上,會話cookie不會在Chrome或Firefox上設置。在一個朋友的Windows上,會話顯然沒有設置,但在另一個朋友的Windows上,會話似乎正在工作。我檢查了我的虛擬Windows Chrome上的cookie設置和標題,但似乎沒有什麼不同,它只是拒絕創建cookie ...

任何想法爲什麼會話cookie顯然會在某些機器上設置,而不是其他?

+1

噢噢...總是檢查你的系統時區,否則你的會話可能會立即過期。 我的另一位朋友的電腦也是全新的,所以它可能是同樣的問題。 =/ – protometa 2012-03-30 17:20:29

+0

我也看到這個問題也發生在我們的網絡應用程序。 – 2012-03-31 04:06:01

+0

如何查看時區?這正是我所發生的事情...在expires中添加另一個零可修復它,但我並不想在超時後再添加另一個小時:) – Asken 2012-04-06 06:25:57

回答

3

答案終於明白了我張貼後不久...

經常檢查你的系統時區或您的會議可以立即到期。即使時間是正確的,時區也會從會議使用的UTC時間抵消。它會影響任何會話的到期時間,但設置爲僅在一兩個小時內過期的會話可能根本不會被設置。