Laravel 5.2覆盖会话生存期变量

时间:2017-11-17 06:47:38

标签: php session laravel-5.2 config session-variables

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

所以在session.php配置文件中,我设置了lifetime = 60。但对于某些特定用户,我希望120 minutes

我试过了:

在myController的登录功能

  1. 检查用户是否是特殊用户
  2. 设置config(['session.lifetime' => 120])
  3. 让用户使用Auth::attempt()登录。
  4. 但它仍然反映了每个用户的60 minutes生命周期。那么我如何为不同的用户实现不同的session.lifetime呢?

    我也尝试过: This solution无效。

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

    的副本

1 个答案:

答案 0 :(得分: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团队成员/专家都可以纠正我。