認證是鑑定使用者身份的過程,是登入功能的基礎。使用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...