Yii2使用者認證

2021-09-28 21:49:51 字數 1626 閱讀 9666

認證是鑑定使用者身份的過程,是登入功能的基礎。使用yii2提供的認證功能必須設定使用者元件user並建立乙個類實現yii\web\identityinte***ce介面。

1. 在配置檔案中設定user元件。

enableautologin: 是否能基於cookie自動登入;

idparam: 儲存user元件唯一id 的 session name 值;

identitycookie: 身份cookie的配置,httponly防止xss攻擊;

loginurl: 當 loginrequired() 方法被呼叫時,提供的登入位址。使用accesscontrol類驗證使用者是否登入時會觸發。

其他配置資訊可以檢視yii2文件:

2. 實現yii/web/identityinte***ce介面。

/**

* 根據給到的id查詢身份。

** @param string|integer $id 被查詢的id

* @return identityinte***ce|null 通過id匹配到的身份物件

*/public static function findidentity($id)

/*** 根據 token 查詢身份。

** @param string $token 被查詢的 token

* @return identityinte***ce|null 通過 token 得到的身份物件

*/public static function findidentitybyaccesstoken($token, $type = null)

/*** @return int|string 當前使用者id

*/public function getid()

/*** @return string 當前使用者的(cookie)認證金鑰

*/public function getauthkey()

/*** @param string $authkey

* @return boolean if auth key is valid for current user

*/public function validateauthkey($authkey)

4. user元件使用

①訪問控制過濾器中使用

use yii\web\controller;

use yii\filters\accesscontrol;

class sitecontroller extends controller

}

2. 獲取登入使用者資訊

// 當前使用者的身份例項。未認證使用者則為 null 。

// 當前使用者的id。 未認證使用者則為 null 。

// 判斷當前使用者是否是遊客(未認證的)

3. 登入

// 使用指定使用者名稱獲取使用者身份例項。

// 請注意,如果需要的話您可能要檢驗密碼

$identity = user::findone(['username' => $username]);

// 登入使用者

Yii 2 登入使用者校驗

在登入頁面,輸入使用者名稱密碼後,yii2是如何完成使用者名稱和密碼的校驗的?根據yii的規則,使用者校驗的入口是從action開始的 sitecontroller actionlogin loginform login loginform validate loginform validatepa...

yii2實戰之使用者註冊登入

繼控制器與檢視互動,本篇將講解如何自定義全域性函式,以及使用yii自帶的使用者註冊登入功能 有時候我們希望自定義一些函式,可以在全域性中呼叫,如php預設的var dump在頁面上的顯示效果並不好,尤其是多層級陣列的情況下,一大坨資料很難分辨。對此,yii提供了vardumper助手,可以輸出美觀易...

yii2框架 yii2自身的自動載入 三

上一節說完了composer的自動載入,下面我們來說一下yii2自身的自動載入。在我們的入口檔案,例如index.php,如下 comment out the following two lines when deployed to production defined yii debug or d...