Laravel 关闭登录时记住我

我正在使用 laravel/ui 包,你可以在这里看到: https: //laravel.com/docs/7.x/authentication#included-routing

我想让用户在登录时选择是否要记住他。但是,默认设置似乎是记住每个用户。根据文档,LoginController 附带记住我的功能:https://laravel.com/docs/7.x/authentication#remembering-users

我的问题是如何更改或覆盖 LoginController,以便用户可以通过复选框决定是否应该记住他。

提前致谢!希望你能帮助我,我对 Laravel 很陌生


狐的传说
浏览 116回答 2
2回答

慕森王

Laravel UI 包会处理它。但是,如果您更改登录查看您并添加您自己的记住我复选框,您必须注意此复选框具有 name="remember" 因为 LoginController 使用检查输入“remember”而不是“remember_me”的特征或其他东西。此外,我对记住我的功能是错误的:记住我意味着如果会话超时你仍然保持登录状态。laravel 会话在 2 小时后超时。要快速测试您的记住我复选框是否有效,您可以将 .env 文件设置更改为 SESSION_LIFETIME=1 而不是 SESSION_LIFETIME=120 并在选中记住我复选框的情况下登录到您的页面。等待一分钟以上的时间,然后关闭浏览器窗口。如果您随后使用相同的浏览器再次访问您的网站并登录(即使会话超时),您将被记住。记住我并不意味着,当您关闭浏览器窗口并再次访问该站点并在会话生命周期内自动登录时,您会被记住。记住我只有在会话生命周期结束时!我知道我在回答我自己的问题,希望它能帮助遇到同样问题的人。如果我仍然有问题,请告诉我。

呼啦一阵风

请记住用户不是默认值。文档说:如果您想在您的应用程序中提供“记住我”功能,您可以将布尔值作为第二个参数传递给 attempt 方法,这将无限期地保持用户身份验证,或者直到他们手动注销。当然,您的用户表必须包含字符串 remember_token 列,该列将用于存储“记住我”令牌。if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { // 正在记住用户... }当您的用户登录时,只需发送“记住我”复选框的值并在您的尝试方法中使用它。if (Auth::attempt(['email' => $email, 'password' => $password], USE VALUE FROM  CHECKBOX HERE)) {    // The user is being remembered...}
打开App,查看更多内容
随时随地看视频慕课网APP