每个会话的 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 API 调用也会继续

会话过期的 laravel 事件监听器,因为会话过期时没有调用注销事件监听器

Laravel 会话随机过期

使用 Angularjs 和 Laravel 注销会话过期

当会话 cookie 在 Laravel 中过期时重新加载站点

Laravel Auth::attempt 会话过期