合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
## Auth类验证身份 可以通过Auth::attempt()方法来对用户进行身份验证,此方法接收两个参数.第一个参数是一个数组,该参数提供的值将用于寻找数据库中的用户数据.使用该方法的使用不需要对密码进行加密,laravel会自动对密码记性bcrypt()加密并与数据库中的密码进行对比.具体步骤如下: 1. 使用 email 字段的值在数据库中查找. 2. 如果用户被找到: 1). 先将传参的 password 值进行哈希加密,然后与数据库中 password 字段中已加密的密码进行匹配. 2). 如果匹配后两个值完全一致,会创建一个『会话』给通过认证的用户。会话在创建的同时,也会种下一个名为 laravel_session 的 HTTP Cookie,以此 Cookie 来记录用户登录状态,最终返回 true. 3). 如果匹配后两个值不一致,则返回 false. 3.如果用户未找到,则返回 false. ~~~ if (Auth::attempt(['email' => $email, 'password' => $password])) { // 该用户存在于数据库,且邮箱和密码相符合 } ~~~ 具体流程如下 , Auth::attempt()可以接收第二个参数,为布尔值,起到"记住我"的功能. ~~~ public function store(Request $request) { $credentials = $this->validate($request, [ 'email' => 'required|email|max:255', 'password' => 'required' ]); if (Auth::attempt($credentials,$request->has('remember'))) { // 登录成功后的相关操作 } else { // 登录失败后的相关操作 } return; } ~~~ ## 获取身份验证成功的用户信息 获取验证成功的用户信息 ~~~ Auth::user(); ~~~ 获取验证成功的用户ID ~~~ Auth::id(); ~~~ 判断当前用户是否已登录(通过身份验证),返回true和false. ~~~ Auth::check(); ~~~ 让已通过注册的用户自动登录 ~~~ Auth::login($user); //$user是该用户的实例,此方法放在注册逻辑里. ~~~ 退出,该方法会自动糖用户退出. ~~~ Auth::logout() ~~~