@polynuc

YII2 rest api — как в каждом экшене контроллера получить Yii::$app->user?

Мне нужно в каждом контроллере иметь доступ к Yii::$app->user->id, тоесть логинеть всегда и давать доступ ко всем action контроллера.
Пока получается только настроить чтобы к методу был открыт доступ или закрыт, при этом система либо логинет и закрывает гостям доступ к action-ам, либо не логинет.
Я это пытаюсь сделать в behaviors, пробовал разные конфигурации и все безуспешно.
public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['authenticator'] = [
            'class' => HttpBearerAuth::className(),
        ];
        $behaviors['access'] = [
            'class' => AccessControl::className(),
            'rules' => [
               [
                    'allow' => true,
                ]
            ],
        ];
        return $behaviors;
    }
  • Вопрос задан
  • 573 просмотра
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
После успешной авторизации возвращайте токен пользователю, по этому токену и делайте доступ.
"Жизнь" токена устанавливайте на определённый срок, после истечения которого требуйте заново логин/пароль.
Вот тут очень подробно всё объясняется.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
если пользователь залогинен, то доступ к Yii::$app->user->id должен быть. Прочитал Вашу переписку с slo_nik, он все верно советует. Мне кажется у Вас просто не проходит авторизация.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы