我需要获取用户数据以用于访问控制。我的承载身份验证工作正常,用户会话已禁用。
public static function findIdentityByAccessToken ($token, $type = null) {
$user = static::findOne(['access_token' => $token, 'status' => self::STATUS_ACTIVE]);
if ( $user ) {
if ( $user->isAccessTokenValid() ) {
$user->last_request = time();
$user->save(false);
return $user;
}
}
return null;
}
Yii::$app->user->id
和Yii::$app->user->getId()
返回null
,因为该会话被禁用了。
我需要在以下位置使用它:
$behaviors['access'] = ['class' => AccessControl::class,
'only' => ['view'],
'rules' => [
[
'actions' => ['view'],
'allow' => false,
'roles' => User::isUserAdmin(Yii::$app->user->getId()),
],
[
'actions' => ['view'],
'allow' => true,
'roles' => User::isUserManager(Yii::$app->user->getId()),
],
],
];
我试图将用户数据或令牌保存在用户类的公共静态变量中,但变量始终为null
。