Laravel 5 - 永远登录

时间:2017-02-02 19:24:47

标签: laravel laravel-5

我想在login页面中添加一个复选框"保持登录状态"。

除非用户注销,否则永远不应该结束用户的会话。

我知道在app / config / session.php中我有这些变量:

'lifetime' => 60,

'expire_on_close' => false,

但我希望永远保持会话的活力,如果用户关闭导航器,则不会删除。

关于我应该如何进行的任何想法? 感谢

3 个答案:

答案 0 :(得分:7)

Laravel有remember users的内置功能,我强烈建议您使用它。

  

如果您想提供"请记住我"你的功能   应用程序,您可以传递一个布尔值作为第二个参数   尝试方法,将保持用户身份验证   无限期地,或直到他们手动注销。当然,你的用户   table必须包含字符串remember_token列,它将是   用来存储"记住我"令牌。

if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
    // The user is being remembered...
}

如果您想手动解决问题,可以采用以下方法解决此问题:您必须将Cookie的过期日期设置为广泛的未来日期,有点像2050年。这在技术上并非永远,但通常应该是够久了。

答案 1 :(得分:2)

您可以将lifetime选项设置为35791394。它是maximum possible number for 32-bit machines

'lifetime' => 35791394, // Session will expire in 68 years.

答案 2 :(得分:2)

您可以设置一些大值。我现在已经尝试了7900年

  

即365 * 24 * 60 * 7990 = 4152240000分钟

  'lifetime' => 4152240000