Laravel 5 Session Lifetime

时间:2017-02-01 15:48:20

标签: php session laravel-5

根据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 个答案:

答案 0 :(得分:11)

检查你的php.ini:

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

  

session.gc_maxlifetime 指定将数据视为“垃圾”的秒数。并可能清理。在会话开始期间可能会发生垃圾收集(取决于session.gc_probability和session.gc_divisor)。

session.cookie_lifetime - 默认为0

  

session.cookie_lifetime 指定发送到浏览器的Cookie的生命周期(以秒为单位)。值0表示"直到浏览器关闭。"默认为0.另请参见session_get_cookie_params()和session_set_cookie_params()。

如果时间少于Laravel配置,则cookie将被删除,因为本地php.ini在Laravel配置上具有首选项

你可以增加它或评论/删除。

如果没有解决,您的应用程序上的某些内容正在破坏会话。

答案 1 :(得分:1)

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

SESSION_LIFETIME=120

值以分钟为单位。

答案 2 :(得分:1)

我在一个项目中发现了这个地方的一生设置...

bootstrap / cache / config.php

所以我需要先运行

php artisan config:clear

答案 3 :(得分:0)

请将关闭时到期的 true 修改为 false:

'expire_on_close' => false,