是否有一种固有的方法来设置会话在一段时间后过期。我目前的设置似乎在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. 如何设置会话的超时值
- 2. 如何设置会话超时?
- 3. Perfino会话超时设置
- 4. 在Rails 3中设置会话超时
- 5. 尽管在web.config中设置会话时间,会话超时
- 6. 如何在embedd jetty xml配置中设置会话超时?
- 7. 如何在Ruby中设置FTP会话闲置超时?
- 8. 如何在php中设置会话超时时间?
- 9. 如何在web.config中设置会话超时
- 10. 如何在django中设置会话超时?
- 11. 如何在JBoss-6.4_EAP中设置会话超时
- 12. 如何在jboss-seam中设置hibernate会话超时?
- 13. 如何在用户在Laravel登录时设置会话变量
- 14. 如何将会话超时设置超过20分钟?
- 15. 如何设置超过30分钟的会话超时
- 16. 设置Oracle 11g会话超时
- 17. 会话的Oracle设置锁定超时
- 18. 如何设置会话超时中的servlet
- 19. ASP.NET为什么会话超时,超时SessionState的设置
- 20. 如何在websphere liberty配置文件中设置绝对会话超时?
- 21. Laravel:设置MSSQL超时
- 22. 重置会话超时
- 23. 如何在laravel的头文件中设置会话变量
- 24. Jetty HTTP/2:如何设置客户端会话超时?
- 25. Grails。如何设置会话的超时间隔。哪个更好?
- 26. 如何设置会话超时以便永不过期?
- 27. 如何设置会话超时弹簧启动tomcat的嵌入
- 28. 如何在应用程序的任何位置设置会话超时
- 29. Laravel 4.2会话表未得到清除
- 30. 在谷歌分析中设置会话Cookie超时
的这第一部分(终身和expire_on_close)是正确的;其余的不是。 – 2015-01-31 17:52:48