Php Laravel 5会话生存期
根据LaravelPhp Laravel 5会话生存期,php,session,laravel-5,Php,Session,Laravel 5,根据Laravelconfig/session.php /* |-------------------------------------------------------------------------- | Session Lifetime |-------------------------------------------------------------------------- | | Here you may specify the number of minutes t
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令牌会这么快失效,为什么会话标识符会填满数据库后端。