借助 Laravel 提供的 Auth
的 attempt
方法可以讓我們很方便的完成用戶的身份認證操作,如下所示:
attempt
方法會接收一個數組來作為第一個參數,該參數提供的值將用於尋找數據庫中的用戶數據。因此在上面的例子中,attempt
方法執行的代碼邏輯如下:
- 使用
email
字段的值在數據庫中查找; - 如果用戶被找到:
1). 先將傳參的password
值進行哈希加密,然后與數據庫中password
字段中已加密的密碼進行匹配;
2). 如果匹配后兩個值完全一致,會創建一個『會話』給通過認證的用戶。會話在創建的同時,也會種下一個名為laravel_session
的 HTTP Cookie,以此 Cookie 來記錄用戶登錄狀態,最終返回true
;
3). 如果匹配后兩個值不一致,則返回false
; - 如果用戶未找到,則返回
false