我想在login
页面中添加一个复选框“保持登录状态”。Laravel 5 - 永远保持登录状态
除非用户注销,否则不应该结束用户的会话。
我知道,在应用程序/配置/ session.php文件我有这些变量:
'lifetime' => 60,
'expire_on_close' => false,
,但我想永远保持活着的会话,并不会被删除,如果用户关闭他的导航员。
关于如何进行的任何想法? 谢谢
我想在login
页面中添加一个复选框“保持登录状态”。Laravel 5 - 永远保持登录状态
除非用户注销,否则不应该结束用户的会话。
我知道,在应用程序/配置/ session.php文件我有这些变量:
'lifetime' => 60,
'expire_on_close' => false,
,但我想永远保持活着的会话,并不会被删除,如果用户关闭他的导航员。
关于如何进行的任何想法? 谢谢
Laravel有一个内置的功能remember users,我强烈推荐使用它。
如果你愿意提供“记住我”你 应用程序的功能,你可以通过一个布尔值作为第二个参数 尝试的方法,这将让用户身份验证 无限期,或直到他们手动注销。当然,您的用户 表必须包含字符串remember_token列,这将用于存储“记住我”标记的 。
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
// The user is being remembered...
}
如果你想手动解决问题
,对于这种解决方法:你必须设置过期您的Cookie的日期在宽将来的日期,有点像2050年,这在技术上是不永远,但通常应该足够长。
我只是按照你写的“记住用户”的链接,但有不需要像你所说的解决方法。 'attempt'函数的第二个参数正在工作:'Auth :: attempt(['email'=> $ email,'password'=> $ password],Input :: get('remember_me',false))' 。 谢谢 – dani24
很高兴为你工作。 :)我的意思是解决方法是另一种选择,如果你不想使用记忆我功能。更新了我的答案以清楚地说明。 – passioncoder
您可以将lifetime
选项设置为35791394
。这是一个maximum possible number for 32-bit machines:
'lifetime' => 35791394, // Session will expire in 68 years.
是的,但是不想被记住的用户发生了什么? – dani24
设置会话时间后,正常注销谁登录时会发生什么情况,而不记住我的令牌? –
这也会影响未登录的用户的会话,包括任何漫游器,例如Elastic Beanstalk健康检查。我不会推荐它。 (一两个小时之后,我在我的数据库中有1,700个“ELB-Healthcheck”会话 - 在这个改变之后这个会话不会过期68年。) –
你可以设置一些大的值。我在7900年
现在试图即365 * 24 * 60 * 7990 =4152240000分钟
'lifetime' => 4152240000
不适用于32位系统,对于64位系统,最大数量为['153722867280912930'](http:// stackoverflow。com/questions/41333527/whats-the-the-laravel-lifetime-config-variable-in-se) –
我试过了我的系统。我的系统是64位。这是我可以尝试的最大值。拉拉维尔给出的错误不超过9999年,但不超过9999年。 – Vikash
Laravel 5.3,我以前评论的Mac OS(64位)值工作得很好。 –
我不相信你可以将其设置为永不过期,但没有上限,所以你可以把它设置为100年。 –