根据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分钟之前就已经注销了。
是打字错误吗?它们是指120秒,也就是2分钟吗?
有没有人能解释一下这个问题?
发布于 2017-02-02 00:04:40
检查您的php.ini:
session.gc_maxlifetime -默认1440秒- 24分钟
session.gc_maxlifetime
指定了多少秒后,数据将被视为“垃圾”并可能被清除。垃圾收集可能发生在会话启动期间(取决于session.gc_probability和session.gc_divisor)。
session.cookie_lifetime -默认0
cookie session.cookie_lifetime指定发送到浏览器的
的生存期。值0表示“直到浏览器关闭”。默认为0。另请参阅session_get_cookie_params()和session_set_cookie_params()。
如果它比Laravel配置的时间短,则cookie将被删除,因为本地php.ini的首选项优于Laravel配置。
你可以增加它或者注释/删除它。
如果不能解决,你的应用程序上的某些东西正在破坏会话。
更新
在发布之后,v5.5.22会话生存期是从.env
加载的,并且在config/session.php
不再是硬编码的,更改了there。
现在,您可以使用以下命令修改会话生存期:
SESSION_LIFETIME=
在您的.env
文件中。
发布于 2019-12-19 14:37:16
更改应用程序根目录中的.env
文件
SESSION_LIFETIME=120
价值以分钟为单位。
发布于 2020-10-28 01:51:43
我在一个项目中找到了这个地方的生命周期设置...
bootstrap/cache/config.php
所以我需要先跑
php artisan config:clear
https://stackoverflow.com/questions/41983976
复制相似问题