Laravel 第七章學習——會話管理

gongmeng發表於2019-12-04

一、Laravel 提供的 Auth 的 attempt 方法可以讓我們很方便的完成使用者的身份認證操作:
attempt 方法會接收一個陣列來作為第一個引數,該引數提供的值將用於尋找資料庫中的使用者資料。因此在上面的例子中,attempt 方法執行的程式碼邏輯如下:

  1. 使用 email 欄位的值在資料庫中查詢;
  2. 如果使用者被找到:\
    1). 先將傳參的 password 值進行雜湊加密,然後與資料庫中 password 欄位中已加密的密碼進行匹配;\
    2). 如果匹配後兩個值完全一致,會建立一個『會話』給通過認證的使用者。會話在建立的同時,也會種下一個名為 laravel_session 的 HTTP Cookie,以此 Cookie 來記錄使用者登入狀態,最終返回 true;\
    3). 如果匹配後兩個值不一致,則返回 false
  3. 如果使用者未找到,則返回 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() 方法可接收兩個引數,第一個引數為需要進行使用者身份認證的陣列,第二個引數為是否為使用者開啟『記住我』功能的布林值。

相關文章