[yii\\web\\IdentityInterface](http://www.yiichina.com/doc/api/2.0/yii-web-identityinterface)接口就是我們要實現的東西了,咱可以隨便定義一個類去實現這個接口,但通常情況下都是用一個AR模型來實現它
而這個AR模型對應的表就是你系統里設計的**用戶表**
示例:
~~~php
namespace app\models;
class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface{
public static function tableName(){
return 'user';
}
/**
* 這個方法用于根據ID查找用戶
* @param mixed $id 用戶ID,根據各自系統的設計不同,可能會是字母,但通常是數字
*/
public static function findIdentity($id)
{
return static::findOne($id);
}
/**
* 這個方法用于根據用戶名查找用戶
* @param string $username 用戶名
*/
public static function findByUsername($username)
{
return static::findOne(['username' => $username]);
}
/**
* 返回用戶ID
*/
public function getId()
{
return $this->id;
}
/**
* 通過類似OAuth協議產生的token來找用戶,實際一般不會往db里找,而是往緩存里找
*/
public static function findIdentityByAccessToken($token, $type = null)
{
throw new \yii\base\ErrorException('暫未實現'); //不實現這個方法不會影響基本登錄的處理,我們先學基礎
}
/**
* 返回OAuth的key
*/
public function getAuthKey()
{
throw new \yii\base\ErrorException('暫未實現'); //不影響基本使用
}
}
~~~
類似這樣的代碼其實在[下載安裝](http://www.kkh86.com/it/yii2/guide-pre-install.html)提到的應用模板里已經有了,打開yii-demo\\models\\User.php就能看到
雖然官方的實現略有不同,但思路都一樣,大家都為了從某個數據載體中取得用戶數據(官方是從一個配置數組里for循環掃描查找,我們實際上是往db里找)
這樣就實現了返回對應的用戶id等信息,接下來學習怎么用起來,讓封裝好的處理邏輯Yii實現登入登出之類的處理
- 目錄
- 配置
- 簡介
- 別名
- gii
- 配置項
- 模型
- 簡介
- 增刪改查
- AR和model
- 模型事件
- 場景
- query查詢
- 增刪改
- AR查詢器
- 模型關系定義
- AR模型連表查詢
- fields
- where拼接
- 模塊
- 創建模塊
- 控制器
- 表單
- 跳轉
- 響應
- 驗證器
- Action
- 組件
- url
- 分頁
- 驗證碼
- 緩存
- 文件上傳
- 預啟動組件
- 事件
- 自定義組件
- redis
- 日志
- 行為
- cookie和session
- 基礎知識
- 創建一個類
- 配置一個類
- object基類
- component組件類特性
- phpstorm無法更改php等級
- url地址美化
- 過濾器
- 請求處理
- 請求組件
- 響應組件
- header
- 用戶登錄
- 實現IdentityInterface接口
- 登錄
- 自動檢測登錄
- 獲取用戶信息
- 訪問行為追蹤
- phpstorm+postman斷點調試