每个会话的 Laravel 会话过期时间
Posted
技术标签:
【中文标题】每个会话的 Laravel 会话过期时间【英文标题】:Laravel session expire time for each session 【发布时间】:2018-07-29 06:57:50 【问题描述】:我们可以在 Laravel 中为每个会话设置过期时间吗?
如果我们可以通过我们创建的每个会话从控制器中实现它? 谢谢。
【问题讨论】:
您创建的每个会话是什么意思?? 【参考方案1】:您可以通过更改config/session.php
上的lifetime
值来更改应用程序范围内的会话生命周期:
/*
|--------------------------------------------------------------------------
| 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' => 4320,
'expire_on_close' => false,
现在,如果你想控制每个用户的会话生命周期,你需要在用户登录之前设置这个值。
数据库中是否存在用户尝试 如果是,并且他是需要更长会话寿命的用户,请运行
config(['session.lifetime' => $newLifetime]);
登录用户 为当前用户享受更长的会话寿命——Source
您必须在LoginController
中进行上述更改。
【讨论】:
是每个用户吗?还是整个网站? @rtfm 如果我们在配置文件中更改它,它将适用于整个站点。如果我们按照上述 4 个步骤在LoginController
中更改它,它将是每个用户。以上是关于每个会话的 Laravel 会话过期时间的主要内容,如果未能解决你的问题,请参考以下文章
会话过期的 laravel 事件监听器,因为会话过期时没有调用注销事件监听器