Yii2中多表验证Identity
2017-08-08 00:00
197 查看
Yii2中自带user identity,在main.php中的components中写入
并在User.php中继承认证接口 <code>yii\web\IdentityInterface</code> 并实现5个方法,5个方法如下:
根据不同的认证方式(基于cookie的登录验证、基于RESTFul的接口access_token验证或者其他)实现不同的方法,不需要的写入即可实现Yii2中的user Identity。
如果需要实现多个module中的认证且user表不同的时候,只需要在当前module下的Module.php中改写idetityClass即可。
原本想用
但是不起作用,于是改用
后生效。
'user' => [ 'identityClass' => 'app\models\User', ]
并在User.php中继承认证接口 <code>yii\web\IdentityInterface</code> 并实现5个方法,5个方法如下:
/** * 根据给到的ID查询身份。 * * @param string|integer $id 被查询的ID * @return IdentityInterface|null 通过ID匹配到的身份对象 */ public static function findIdentity($id) { return static::findOne($id); } /** * 根据 token 查询身份。 * * @param string $token 被查询的 token * @return IdentityInterface|null 通过 token 得到的身份对象 */ public static function findIdentityByAccessToken($token, $type = null) { return static::findOne(['access_token' => $token]); } /** * @return int|string 当前用户ID */ public function getId() { return $this->id; } /** * @return string 当前用户的(cookie)认证密钥 */ public function getAuthKey() { return $this->auth_key; } /** * @param string $authKey * @return boolean if auth key is valid for current user */ public function validateAuthKey($authKey) { return $this->getAuthKey() === $authKey; }
根据不同的认证方式(基于cookie的登录验证、基于RESTFul的接口access_token验证或者其他)实现不同的方法,不需要的写入即可实现Yii2中的user Identity。
如果需要实现多个module中的认证且user表不同的时候,只需要在当前module下的Module.php中改写idetityClass即可。
原本想用
$this->setComponents([ 'user' => ['identityClass' => 'xxx'], ])
但是不起作用,于是改用
Yii::$app->user->identityClass = 'xxx';
后生效。
相关文章推荐
- NET 实现自定义ContextUser的Identity和Principal实现自定义用户信息,权限验证
- yii2中的rules 自定义验证规则详解
- YII2 验证规则详解
- 详解Yii2 rules 的验证规则
- yii2项目实战之restful api授权验证详解
- 如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
- ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇
- yii2 modal弹窗之ActiveForm ajax表单异步验证
- YII2框架表单-model(验证)-HTML_help部件 URL_help部件 以注册页面为实例
- 解决Yii2 启用_csrf验证后POST数据仍提示“您提交的数据无法验证”
- .NET 实现自定义ContextUser的Identity和Principal实现自定义用户信息,权限验证
- ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证代码篇
- OpenStack Identity Keystone基本概念及验证进化过程
- yii2发送异步请求中的小问题,有效处理csrf验证
- yii2 核心验证器
- 坎坷路:ASP.NET Core 1.0 Identity 身份验证(中集)
- Yii2中的场景(scenario)和验证规则(rule)详解
- YII2 电话号码的验证规则
- Hyperledger Fabric MSP Identity Validity Rules——MSP身份验证规则
- yii2中自定义表单或者post请求 csrf验证(防跨站伪请求)