是否有一種固有的方法來設置會話在一段時間後過期。我目前的設置似乎在30分鐘後過期,我想禁用該設置或至少增加該設置,但是我無法在Laravel中找到可以設置此位置的任何位置?如何在Laravel 4.2中設置會話超時?
回答
檢查的php.ini,它有session.gc_maxlifetime的值(和也session.cookie_lifetime),它限制了PHP允許會話持續多長時間。當Laravel設置選項時,它通過cookie_lifetime
作爲app/config/session.php
中設置的值。
但是,會話在達到最大生命週期後不會立即過期。會發生什麼事是在這段時間過去後,會話可以被垃圾收集器刪除。
爲了解決這個問題
一個解決辦法是檢查你的php.ini
文件。你可以定義這個變量:session.gc_maxlifetime
。默認情況下,它被設置爲1440. 只是評論或刪除它。
從這個時候開始,session可以正常使用你的session.php配置值。
App\Config\Session.php
檢查終身...
您還可以設置...
Cookie::make('name', 'value', 60); // 1 hr
在app/config/session.php
您有:
lifetime
選項,允許您設置會話過期時間(分鐘)(未秒)
'lifetime' => 60,
意味着之後的這屆會議將到期小時。
還有一個更設置在這裏:
'expire_on_close' => true,
是決定是否瀏覽器時,將關閉會話將被終止。
你可以讓有興趣的其他設置也是php.ini
值:
session.cookie_lifetime = 0
和
session.gc_maxlifetime = 1440
這些都是默認值。
第一個意味着會話cookie將被存儲多長時間 - 默認值爲0(直到瀏覽關閉)。第二個選項意味着PHP可能銷燬該會話數據的次數有多少次。
我說可能是因爲在php.ini
文件中有另外一個選項session.gc_probability
決定運行垃圾回收器的機會是多少。默認情況下,在1440秒(24分鐘)後,此會話數據將被破壞的可能性只有1%。
本地PHP會話支持滴在Laravel 4.1
開始配置會話有效期編輯app/config/session.php
,並設置如下:
/* if this is set to 'native' it will use file.
if this is set to 'array' sessions will not persist across requests
effectively expiring them immediately.
*/
'driver' => 'file'
/* number of minutes after which the session is available for Laravel's
built in garbage collection.
Prior to 4.1 you could set this to zero to expire sessions when
the browser closes. See the next option below.
*/
'lifetime' => 60
/* If true sessions will expire when the user closes the browser.
This effectively ignores your lifetime setting above.
Set to false if you want Laravel to respect the lifetime value.
If your config file was written before 4.1 you need to add this.
*/
'expire_on_close' => false,
參考文獻:
- Discussion of why native PHP sessions were dropped。 (因爲它會自動添加的Cookie信息標題這需要大量的工作,爲框架來解決,如果他們想完全包裹請求/響應)
- Other Laravel session drivers
- Addition of expire_on_close config option在Laravel 4.0至4.1升級指南討論
運行artisan changes 4.1.*
查看關於native
會話駕駛員等同的音符file
$ artisan changes 4.1.* | grep -i native
-> Native session driver has been replaced by 'file'. Specifying 'native' driver will just use the new file driver.
- 1. Typo3會話超時設置
- 2. 設置會話超時
- 3. 如何設置會話的超時值
- 4. 如何爲IISExpress設置會話超時
- 5. 如何設置會話超時?
- 6. Perfino會話超時設置
- 7. WinInet設置會話超時
- 8. 在ServiceStack中設置會話超時?
- 9. 在Rails 3中設置會話超時
- 10. 在Spring MVC中設置會話超時
- 11. 在asp.net mvc4中設置會話超時?
- 12. 儘管在web.config中設置會話時間,會話超時
- 13. 如何在Ruby中設置FTP會話閒置超時?
- 14. 如何在embedd jetty xml配置中設置會話超時?
- 15. 如何設置會話在Laravel 5.3
- 16. 如何在php中設置會話超時時間?
- 17. 在Laravel中檢查會話超時
- 18. 如何在Laravel Lumen中設置會話或Cookie生存時間
- 19. IBM Websphere中的會話超時設置
- 20. 如何在jboss-seam中設置hibernate會話超時?
- 21. 如何在ASP.NET中設置會話超時?
- 22. 如何在web.config中設置會話超時
- 23. 如何在web.xml中設置會話超時秒數?
- 24. 如何在JBoss-6.4_EAP中設置會話超時
- 25. Symfony,如何在操作中設置會話超時
- 26. 如何在django中設置會話超時?
- 27. 設置時間會話超時
- 28. 設置會話超時時間
- 29. 如何在用戶在Laravel登錄時設置會話變量
- 30. 如何設置超過30分鐘的會話超時
的這第一部分(終身和expire_on_close)是正確的;其餘的不是。 – 2015-01-31 17:52:48