借助 Laravel 提供的 Auth 的 attempt 方法可以让我们很方便的完成用户的身份认证操作,如下所 示:
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// 该用户存在于数据库,且邮箱和密码相符合
}
attempt 方法会接收一个数组来作为第一个参数,该参数提供的值将用于寻找数据库中的用户数据。 因此在上面的例子中, attempt 方法执行的代码逻辑如下:
1. 使用 email 字段的值在数据库中查找;
2. 如果用户被找到:
1). 先将传参的 password 值进行哈希加密,然后与数据库中 password 字段中已加密的密 码进行匹配;
2). 如果匹配后两个值完全一致,会创建一个『会话』给通过认证的用户。会话在创建的同时,也 会种下一个名为 laravel_session 的 HTTP Cookie,以此 Cookie 来记录用户登录状态,最 终返回 true ;
3). 如果匹配后两个值不一致,则返回 false ;
3. 如果用户未找到,则返回 false 。
结合 attempt 方法对用户身份进行认证的具体代码实现如下,使用 Auth 前需要对其进行引用 (注意文件顶部引入 use Auth; ):
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;#引入 use Auth
class SessionsController extend
文章评论