如何通过Yii2承载身份验证获取用户数据?

时间:2018-07-02 11:51:38

标签: rest api yii2 bearer-token

我需要获取用户数据以用于访问控制。我的承载身份验证工作正常,用户会话已禁用。

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->idYii::$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

0 个答案:

没有答案