2013-07-29 58 views
1

當我乘客(乘客啓動)啓動項目並嘗試設置cookie過期時,我從Web服務器獲取已過期的cookie。乘客影響cookie過期

In console: 

passenger start 

In controller: 

cookies[:auth_admin_token] = { 
    :value => 'auth_cookie', 
    :path  => '/settings', 
    :secure => false, 
    :expires => 20.minutes.from_now 
} 

因爲我發現與Rails聲明的時區有關的問題。但是在rails文檔中找不到關於時區和cookie的任何信息。如果我爲過期「240.minutes.from_now」設置了很大的值,cookie將起作用。

我有,當我用「的WEBrick」

rails s 
=> Booting WEBrick 
=> Rails 3.0.20 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
+0

從Phusion Passenger和WEBrick獲得的原始HTTP響應標頭是什麼?它們有什麼不同? – Hongli

+0

我將輸出內容寫入gist https://gist.github.com/shaliko/6130351 –

+0

您的auth_cookie不會出現在任何回覆中。在這兩種情況下可能都會中斷,但是在訪問WEBrick端口時,瀏覽器碰巧正在緩存舊Cookie。 – Hongli

回答

2

啓動項目沒有這樣的問題,這是乘客蟲「自動生成的日期標題都必須是GMT」 https://code.google.com/p/phusion-passenger/issues/detail?id=913

錯誤是固定的乘客版本4.0。 13 http://blog.phusion.nl/2013/08/15/phusion-passenger-4-0-13-released/

「自動生成的HTTP日期標題現在使用UTC代替本地時間,這可能會導致Cookie的到期時間錯誤,修復問題#913。」

+0

可以確認這個解決方案。請將您的答案標記爲正確。 – freemanoid