Laravel: difference between login with and without Remember Me option?

ang*_*000 5 authentication laravel

I have a question about the default Laravel Remember Me option below the login form. I use the default built-in LoginController. When I read the Laravel documentation, then I read about the Remember option:

"which will keep the user authenticated indefinitely, or until they manually logout"

Ok. Now I do a test:

  • 我取消选中“记住我”复选框,然后登录。然后我关闭浏览器。我打开浏览器并转到我的应用程序:我仍然处于登录状态。
  • 然后我选择“记住我”复选框,登录,关闭浏览器,打开浏览器:完全相同的结果:我仍然登录......

这怎么可能?有什么不同?

Kys*_*lik 6

如果你使用“记住我”,Laravel 会放置带有令牌的 cookie,用于在你下次访问该页面时让你登录(如果你以某种方式注销,我将在稍后解释)。

Laravel 默认情况下使用有效期为 2 小时的会话(您可以在配置中进行设置),因此如果您在登录时关闭浏览器,然后尝试在 2 小时的窗口中再次打开同一浏览器,服务器将不会注意到更改。

“以某种方式退出”

  • 显然,通过单击应用程序中的注销
  • 通过浏览器本身或第三方程序清除浏览器缓存
  • 使用不同的浏览器(这只是为了澄清)
  • 使用隐身模式(这只是为了澄清)
  • 使用不同的计算机和浏览器,没有同步功能(这是为了澄清)

回答你的问题“有什么区别?”:

如果您使用“记住我”,Laravel 将在登录时使用令牌设置 cookie,而不是凭据(名称:密码组合),并且该过程对用户不可见。

如果您不使用记住我,您只能登录 2 小时(或配置文件中设置的任何内容),无需执行任何操作。浏览器即使在关闭后仍保留会话信息的事实被认为是浏览器的功能)。