Php Laravel 5会话生存期

Php Laravel 5会话生存期,php,session,laravel-5,Php,Session,Laravel 5,根据Laravelconfig/session.php /* |-------------------------------------------------------------------------- | Session Lifetime |-------------------------------------------------------------------------- | | Here you may specify the number of minutes t

根据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
minutes,但我感觉我的用户在120分钟之前就已经注销了

那是打字错误吗?是指120秒,也就是2分钟吗


有人能解释一下吗

检查您的php.ini以了解:

session.gc_maxlifetime-默认1440秒-24分钟

session.gc_maxlife指定数据被视为“垃圾”并可能被清除的秒数。垃圾收集可能在会话启动期间发生(取决于session.gc_概率和session.gc_除数)

会话。cookie_生存期-默认值0

会话。cookie\u生存期指定发送到浏览器的cookie的生存期(以秒为单位)。值0表示“直到浏览器关闭”。默认值为0。另请参见会话获取cookie参数()和会话设置cookie参数()

如果时间少于Laravel配置,则会删除cookie,因为本地php.ini对Laravel配置有偏好

您只需增加或注释/删除即可

如果未解决问题,应用程序上的某些内容会破坏会话

更新

发布后,会话生存期从
.env
加载,不再在
config/session.php
中硬编码,更改

现在,您可以使用以下方法修改会话生存期:

SESSION_LIFETIME=

在您的
.env
文件中。

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

SESSION_LIFETIME=120

值以分钟为单位。

我在一个项目中找到了此位置的生存期设置

bootstrap/cache/config.php

所以我需要先跑

php artisan config:clear

检查php.ini上的
会话.gc_maxlifetime
+
会话.cookie_lifetime
,确保您没有清除浏览器cookie,并且寿命按分钟设置。顺便问一下:)这会覆盖我的Laravel会话吗?它不会覆盖Laravel会话:)session.gc_maxlifetime=1440Laravel会话可能会因很多原因而过期调试起来很复杂,我建议您登录并导航/在应用程序上执行所有可以执行的操作,然后在注销时检查您执行的操作。即使我使用redis作为会话驱动程序,这是真的吗,或者只是使用文件?这只是保存了我的理智检查,为什么CSRF令牌会这么快失效,为什么会话标识符会填满数据库后端。