php Laravel 5会话生存期

pjngdqdw  于 2023-03-16  发布在  PHP
关注(0)|答案(4)|浏览(129)

根据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分钟吗?
有人能解释一下吗?

gkl3eglg

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硬编码,此处发生更改。
现在,您可以使用以下命令修改会话生存期:

SESSION_LIFETIME=90 //minutes

.env文件中。

ryevplcw

ryevplcw2#

更改应用根目录中的.env文件

SESSION_LIFETIME=120

价值以分钟为单位。

eeq64g8w

eeq64g8w3#

我在一个项目中找到了这个地方的终生设置...

  • Bootstrap /缓存/配置.php*

所以我得先跑

php artisan config:clear
cfh9epnr

cfh9epnr4#

请将“关闭时过期”的true修改为false:

'expire_on_close' => false,

相关问题