根据Laravel config/session.php
/*
|--------------------------------------------------------------------------
| Session Lifetime
|--------------------------------------------------------------------------
|
| Here you may specify the number of minutes that you wish the session
| to be allowed to remain idle before it expires. If you want them
| to immediately expire on the browser closing, set that option.
|
*/
'lifetime' => 120,
'expire_on_close' => true,
'expired-session-redirect' => url(env('APP_URL'))
我已将会话的生命周期设置为120
分钟,但我觉得我的用户在120分钟之前就已注销了。
任何人都可以对此有所了解吗?
答案 0 :(得分:11)
检查你的php.ini:
session.gc_maxlifetime - 默认1440秒 - 24分钟
session.gc_maxlifetime 指定将数据视为“垃圾”的秒数。并可能清理。在会话开始期间可能会发生垃圾收集(取决于session.gc_probability和session.gc_divisor)。
session.cookie_lifetime - 默认为0
session.cookie_lifetime 指定发送到浏览器的Cookie的生命周期(以秒为单位)。值0表示"直到浏览器关闭。"默认为0.另请参见session_get_cookie_params()和session_set_cookie_params()。
如果时间少于Laravel配置,则cookie将被删除,因为本地php.ini在Laravel配置上具有首选项。
你可以增加它或评论/删除。
如果没有解决,您的应用程序上的某些内容正在破坏会话。
答案 1 :(得分:1)
在您的应用根目录中更改.env
文件
SESSION_LIFETIME=120
值以分钟为单位。
答案 2 :(得分:1)
我在一个项目中发现了这个地方的一生设置...
bootstrap / cache / config.php
所以我需要先运行
php artisan config:clear
答案 3 :(得分:0)
请将关闭时到期的 true 修改为 false:
'expire_on_close' => false,