詳解yii使用者登入體系

2021-09-01 16:43:09 字數 1126 閱讀 8458

詳解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...