美文网首页LaravelPHPlaravel学习笔记
关于laravel开箱即用的登录系统-----记住密码(自动登录

关于laravel开箱即用的登录系统-----记住密码(自动登录

作者: MakingChoice | 来源:发表于2016-10-08 21:58 被阅读2935次

大家在做网站的时候都会遇到自动登录的需求,比较传统的方式,是把用户名和密码写在cookie里面,这样虽然能满足要求但是会产生一些安全问题,laravel自带的登录系统<code>form<.code>表单中自动记住密码功能,实现起来非常简单,只需要在<code>form<.code>表单中加入<code><input value="remember me" type="checkbox" name="remember"></code>就能实现,这里只需要满足一点要求就是<code>name="remember"一定要有,这是form表单请求的标志。</code>。
下面说一下原理,当选中了记住我的功能,laravel会在前端浏览器中的cookie中加入remember_web字段的一个随机值,下面两张图就是前后对比。

登录前.png 登录后.png
从登录前后可以看到,laravel会在cookie中存入一个随机值,来保证下次自动登录。如果你把这个值删掉的话,就会失去自动登录的功能。

那咱们可以看看源码,这样就可以了解到laravel是如何实现的,在<code>AuthenticatesUsers</code>中的<code>login</code>方法,里面可以看到
if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
    return $this->handleUserWasAuthenticated($request, $throttles);
}

核心就是

// 通过 Auth::attempt() 传入 true 值来开启 '记住我' 功能
Auth::attempt($credentials, true);

相关文章

网友评论

  • d362b061bc39:你好, 请问下这个 记住密码(自动登录) 能设置时间吗, 比如我现在仅设置30天的时间,
  • fe84c38f25a9:自动登录和记住密码完全是两个功能,自动登录是不需要手动点击,直接进入到后台。而记住密码仅仅是记住,使用的是cookies的功能。两种概念 - -
    MakingChoice:@小宇宙丶燃烧吧 laravel记住密码,两者都实现了,是通过记住生成的一个随机cooike来实现自动登录。

本文标题:关于laravel开箱即用的登录系统-----记住密码(自动登录

本文链接:https://www.haomeiwen.com/subject/mmxpyttx.html