我在Apache上使用Laravel 4.1應用程序,並且在我的本地開發機器上一切正常,但在我的登臺機器上(共享主機上)用戶隨機獲取日誌並提示再次輸入他們的憑證。Laravel 4.1會話變量被隨機忘記
相關設置:
應用程序/配置/ session.php文件:使用Laravel默認的認證驅動程序
- 的php.ini:
- gc_maxlifetime = 1440
- gc_probability = 1
- gc_divisor = 100
這似乎並不相同的問題,一些人都經歷過here。會話文件沒有被php清除。只有幾個會話變量隨機丟棄。
I tail -F
'd會話文件,並且可以看到變量在一個請求和下一個請求之間何時被丟棄。
a:4:{
s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}
s:6:"_token";s:40:"hvuw9VWWjssSwUL2C5eVSn0qZ2g1cwVF5YCEsLG7";
s:38:"login_82e5d2c56bdd0811318f0cf078b78bfc";i:2;
s:9:"_sf2_meta";a:3:{s:1:"u";i:1399318721;s:1:"c";i:1399318011;s:1:"l";s:1:"0";}}
後:
a:3:{
s:6:"_token";s:40:"7o3b6NhiuDKXq4ftvngUefqe6cWybX1tzPEcDaxk";
s:9:"_sf2_meta";a:3:{s:1:"u";i:1399318721;s:1:"c";i:1399318721;s:1:"l";s:1:"0";}
s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
的login_會消失,這將導致Laravel的Session類假定用戶未通過身份驗證之前,看起來像這樣(格式爲便於閱讀)。不過,我不確定爲什麼這個會話變量會下降。據我所知,會話變量中沒有Session :: forget,:: clear(),:: remove()或:: invalidate()被調用。
我還注意到_token變量在請求之間是不變的,直到問題出現在哪個點發生變化時爲止,如上所述。
任何想法這裏發生了什麼?
你可以請發佈你的完整會話配置嗎?另外 - 你可以嘗試一個替代會議驅動器?也許數據庫暫時看看問題是否存在? – Laurence
好吧,我已經發布了我的session.php上面 – ralbatross
雖然不完全是一個問題 - 改變你的cookie名稱爲'東西' - 不要使用下劃線 - 它可能會導致一個問題。另外 - 嘗試關閉expire_on_close,看看是否有幫助。 http://stackoverflow.com/q/15016204/1317935 – Laurence