詳解yii使用者登入體系
這是yii底層呼叫使用者元件,是cwebuser的乙個例項,如果沒有在main.php檔案裡配置的話yii缺省會呼叫cwebuser,當然也可以自己去擴充套件cwebuser這個類
先說一下所有元件類的基類-ccomponent,ccomponent實現了定義,使用屬性和事件的協議,屬性石通過屬性是通過getter方法或/和setter方法定義。
訪問屬性就像訪問普通的物件變數。讀取或寫入屬性將呼叫應相的 getter或setter方法
例-〉$a=$component->text; // 相當於 $a=$component->gettext();
$component->text='abc'; // 相當於 to $component->settext('abc');
getter 和 setter 方法的格式如下:
// getter, 定義讀取屬性 'text'
public function gettext()
// setter, 定義寫入屬性 'text' 將 $value 的值賦給這個屬性
public function settext($value)
由此可以看出,在呼叫ccomponent物件屬性的時候,可以呼叫$this->getuser()方法也可以直接用$this->user這個屬性。
來看一下登入流程:
使用者的登入頁面是site/login,actionlogin中首先例項化了乙個loginform物件,當使用者登入資料提交後系統調
用loginform的loginin方法在此方法中呼叫了cuseridentity類的乙個子類(自由擴充套件)的authenticate方法對使用者名稱,密碼進行驗證。驗證通過後,呼叫一下cwebuser的login方法,在此方法中會呼叫建立session的方法,從而保證了cwebuser的持久化。
具體的概述就是:
cwebuser 代表乙個web應用程式的持久狀態.
cwebuser 應該和乙個 identity 一起使用 identity 實現了實際的驗證演算法.
乙個典型的使用cwebuser的身份驗證過程如下:
使用者提供所需的資訊進行身份驗證.
乙個 identity instance 是用使用者提供 的資訊建立的.
from:
詳解yii使用者登入體系
yii提供了cuseridentity類,這個類一般用於驗證使用者名稱和密碼的類.繼承後我們需要重寫其中的authenticate 方法來實現我們自己的驗證方法.具體 如下 class useridentity extends cuseridentity return this errorcode ...
Yii 使用者登入驗證
使用者登入驗證 href rel noopener noreferrer yii 使用者登入驗證 svenc 1 首先在model資料夾中新建檔案 loginform.php 如下 class loginform extends cformmodel public function attribut...
yii框架使用者登入例項
序號 欄位名稱 型別 名稱 屬性 預設值 說明 1 user id int 10 pk 自動編號 2 username varchar 64 使用者名稱 uniq 3 nickname varchar 64 暱稱 4 password varchar 32 密碼 使用者登陸 author ttall...