一、Laravel 提供的 Auth
的 attempt
方法可以讓我們很方便的完成使用者的身份認證操作:attempt
方法會接收一個陣列來作為第一個引數,該引數提供的值將用於尋找資料庫中的使用者資料。因此在上面的例子中,attempt
方法執行的程式碼邏輯如下:
- 使用
email
欄位的值在資料庫中查詢; - 如果使用者被找到:\
1). 先將傳參的password
值進行雜湊加密,然後與資料庫中password
欄位中已加密的密碼進行匹配;\
2). 如果匹配後兩個值完全一致,會建立一個『會話』給通過認證的使用者。會話在建立的同時,也會種下一個名為laravel_session
的 HTTP Cookie,以此 Cookie 來記錄使用者登入狀態,最終返回true
;\
3). 如果匹配後兩個值不一致,則返回false
; - 如果使用者未找到,則返回
false
。
結合 attempt
方法對使用者身份進行認證的具體程式碼實現如下,使用 Auth
前需要對其進行引用(注意檔案頂部引入 use Auth;
);
二、 Laravel 提供的 Auth::user()
方法來獲取 當前登入使用者 的資訊;
三、Laravel 提供了 Auth::check()
方法用於判斷當前使用者是否已登入,已登入返回 true,未登入返回 false。
四、{{ method_field('DELETE') }}
偽造表單發起delete
請求;
五、Auth::login($user);
讓一個已認證通過的使用者例項進行登入;
六、Laravel 預設提供的Auth::logout()
方法來實現使用者的退出功能;
七、Auth::attempt()
方法可接收兩個引數,第一個引數為需要進行使用者身份認證的陣列,第二個引數為是否為使用者開啟『記住我』功能的布林值。