合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[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实现登入登出之类的处理