我正在尝试使用laravel框架实现“记住我”登录。当用户选中“记住我”框时,laravel会将会话数据保留一个月。如果用户取消选中它,我希望保持会话直到用户关闭浏览器。
我知道如何在选中“记住我”时控制会话。我在config / session.php中配置了会话,如下所示:
'lifetime' => 43200,
'expire_on_close' => false,
我正在使用全局会话助手的会话
session(['accessToken' => SOME_ACCESS_TOKEN]);
Session::flush();
等等。
但我不知道如何在用户登录“忘记我”时取消选中。我试图找到一种控制配置的方法
'expire_on_close' => true,
动态,基于用户输入,但失败了。请告诉我如何在一个laravel框架中保留两个不同的会话生命周期配置。或者,如果我以错误的方式尝试“记住我”功能,请指导我。
基本上,就像我上面所述,我想在一个月内保持“记住我”的会话,并保持会话直到浏览器关闭而不“记住我”。
感谢。
答案 0 :(得分:0)
为了获得记住我功能,您不应该使用会话配置。相反,您应该使用Laravel中已经内置的功能。
使用 Auth :: attempt()对用户进行身份验证时,可以传递布尔值作为第二个参数。如果用户选中记住我复选框,则将其设置为true。否则将其设置为false。
这样,当选中复选框时,将记住用户,直到他们手动注销应用程序。否则,他们将被记住,直到他们关闭浏览器或会话过期。
您可以在此处找到更多信息:https://laravel.com/docs/5.3/authentication#remembering-users