Laravel有两个不同的终身会话

时间:2016-10-26 09:19:48

标签: php laravel session laravel-5

我正在尝试使用laravel框架实现“记住我”登录。当用户选中“记住我”框时,laravel会将会话数据保留一个月。如果用户取消选中它,我希望保持会话直到用户关闭浏览器。

我知道如何在选中“记住我”时控制会话。我在config / session.php中配置了会话,如下所示:

'lifetime' => 43200,
'expire_on_close' => false,

我正在使用全局会话助手的会话

session(['accessToken' => SOME_ACCESS_TOKEN]);
Session::flush();

等等。

但我不知道如何在用户登录“忘记我”时取消选中。我试图找到一种控制配置的方法

'expire_on_close' => true,

动态,基于用户输入,但失败了。请告诉我如何在一个laravel框架中保留两个不同的会话生命周期配置。或者,如果我以错误的方式尝试“记住我”功能,请指导我。

基本上,就像我上面所述,我想在一个月内保持“记住我”的会话,并保持会话直到浏览器关闭而不“记住我”。

感谢。

1 个答案:

答案 0 :(得分:0)

为了获得记住我功能,您不应该使用会话配置。相反,您应该使用Laravel中已经内置的功能。

使用 Auth :: attempt()对用户进行身份验证时,可以传递布尔值作为第二个参数。如果用户选中记住我复选框,则将其设置为true。否则将其设置为false。

这样,当选中复选框时,将记住用户,直到他们手动注销应用程序。否则,他们将被记住,直到他们关闭浏览器或会话过期。

您可以在此处找到更多信息:https://laravel.com/docs/5.3/authentication#remembering-users