- 请教一下各位,IdentityInterface里的authkey作用是什么?
- 按照权威指南上的做法,我需要在实现IdentityInterface接口的表中添加authkey字段吗?
- getauthkey()直接返回表中的id而非权威手册中的随机字符这样可以吗?
- 如下代码有什么问题吗?
public function getAuthKey() { return $this->id; } public function validateAuthKey($authKey) { return $this->authKey === $authKey; }
1.按照权威指南解释:yii\web\IdentityInterface::getAuthKey():获取基于 cookie 登录时使用的认证密钥。 认证密钥储存在 cookie 里并且将来会与服务端的版本进行比较以确保 cookie的有效性。具体引用位置在yii\web\user里面loginByCookie方法。
2.需要在你的用户表里面添加这一个字段。
3.直接返回id肯定是会出问题的,就比如你validateAuthKey()的时候就会出错,除非你authkey字段存的就是id的值。所以尽量是存的时候就用Yii::$app->security->generateRandomString()获取随机字符。
4.getAuthKey(),应该返回AuthKey。