Как получить пользовательские данные с аутентификацией на предъявителя Yii2? - PullRequest
0 голосов
/ 02 июля 2018

Мне нужно получить данные пользователя, которые будут использоваться для контроля доступа. У меня аутентификация на предъявителя работает нормально, сеанс пользователя отключен.

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.

...