Один контроллер для авторизованных и не авторизованных пользователей?

Всё что касается построения API
Закрыто
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение user »

Есть некий контроллер, нужно, чтобы она был доступен и авторизованным и не авторизованным пользователя?
Как разделить логику?
Сделать его общедоступным, и сделать чтение заголовка с токеном и по нему создать identity?
Не совсем понятна реализация :(
Аватара пользователя
Tonni_regoletti
Сообщения: 52
Зарегистрирован: 2019.10.11, 09:16

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение Tonni_regoletti »

Наверное, можно выполнять проверку в beforeAction. И в зависимости от пользователя заполнять флаг, по которому будет понятно авторизован он или нет
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение ElisDN »

Либо if (!Yii::$app->user->isGuest()) { ... } else { ... } в одном экшене, либо сделать два разных экшена.
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение user »

я имел в контексте REST API не точно вопрос сформулировал там авторизация через Bearer Token
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение ElisDN »

Без разницы. Yii::$app->user работает и с HttpBearerAuth.
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение user »

ElisDN писал(а): 2020.03.13, 23:26 Без разницы. Yii::$app->user работает и с HttpBearerAuth.
Как если токена не будет, то вылетит 401 ошибка?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение ElisDN »

Если укажете ему optional, то не вылетит.
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Один контроллер для авторизованных и не авторизованных пользователей?

Сообщение user »

ElisDN писал(а): 2020.03.14, 00:49 Если укажете ему optional, то не вылетит.
Дмитрий, елси подскажите, как сделать буду благодарен
Закрыто