根据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分钟吗?
有人能解释一下吗?
4条答案
按热度按时间gkl3eglg1#
检查您的php.ini是否有:
会话.gc_最长寿命-默认值为1440秒- 24分钟。
session.gc_maxlifetime指定秒数,在此秒数之后,数据将被视为“垃圾”并可能被清除。垃圾收集可能在会话启动期间发生(取决于session.gc_probability和session.gc_divisor)。
会话.cookie生存期-默认值为0。
session.cookie_lifetime指定发送到浏览器的cookie的生存期(秒)。值0表示“直到浏览器关闭”。默认值为0。另请参阅session_get_cookie_params()和session_set_cookie_params()。
如果它比Laravel配置的时间短,cookie将被删除,因为本地php.ini有preference超过Laravel配置.
你可以增加它或评论/删除。
如果没有解决,你的应用程序上的东西正在破坏会话。
更新
发布v5.5.22后,会话生存期从
.env
加载,并且不再在config/session.php
硬编码,此处发生更改。现在,您可以使用以下命令修改会话生存期:
在
.env
文件中。ryevplcw2#
更改应用根目录中的
.env
文件价值以分钟为单位。
eeq64g8w3#
我在一个项目中找到了这个地方的终生设置...
所以我得先跑
cfh9epnr4#
请将“关闭时过期”的true修改为false: