Laravel 5.2覆盖会话生存期变量

问题描述 投票:2回答:1

所以基本上我想在运行时只为某些用户覆盖配置的session.lifetime变量。

所以在session.php配置文件中,我设置了lifetime = 60。但对于一些特定用户,我想要它为120 minutes

我试过了:

在myController的Login函数中

  1. 检查用户是否是特殊用户
  2. 设置config(['session.lifetime' => 120])
  3. 让用户使用Auth::attempt()登录。

但它仍然反映了每个用户的60 minutes生命周期。那么我怎样才能为不同的用户实现不同的session.lifetime

我也试过:This solution哪个不行。

编辑:我不想缓存任何数据或不想在特定时间内在我的会话中存储任何自定义数据。我想在他开始登录页面之前定义用户在我的网站中理想的时间长度。所以绝对不是This question的副本

php session laravel-5.2 config session-variables
1个回答
0
投票

根据我对此的研究,我开始知道Laravel设置了用户的last_active_time,可能在Authentication中间件中,他们为检查提供了一些逻辑

If((last_active_time + config_session_time) > current_timestamp) {
   'Send user to login page.';
}
else {
   'Update last_active_time = current_timestamp';
   'Continue';
}

如果Laravel提出设置last_active_time的逻辑,那么我们可以设置动态会话时间,而不是设置session_expire_time。否则,似乎不可能在不扭曲Laravel的当前逻辑的情况下设置动态会话时间。

如果我错了,任何Laravel团队成员/专家都可以纠正我。

© www.soinside.com 2019 - 2024. All rights reserved.