Как перехватить 401 ошибку?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Как перехватить 401 ошибку?

Сообщение user »

Как можно перехватить код состояния 401 в методе контроллера, чтобы выполнить определенные действия?
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: Как перехватить 401 ошибку?

Сообщение Auramel »

Если Вас правильно понял

Код: Выделить всё

Yii::$app->getResponse()->getStatusCode()
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Как перехватить 401 ошибку?

Сообщение user »

Auramel писал(а): 2018.02.15, 16:49 Если Вас правильно понял

Код: Выделить всё

Yii::$app->getResponse()->getStatusCode()
если бы все так было очевидно, я бы не задавал тут этот вопрос
Auramel
Сообщения: 80
Зарегистрирован: 2017.11.17, 14:39
Откуда: Russia, Ufa
Контактная информация:

Re: Как перехватить 401 ошибку?

Сообщение Auramel »

:) ну так уточните
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Как перехватить 401 ошибку?

Сообщение user »

Auramel писал(а): 2018.02.15, 17:01 :) ну так уточните
прочти еще раз первое сообщение
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: Как перехватить 401 ошибку?

Сообщение proctoleha »

user писал(а): 2018.02.15, 19:06 прочти еще раз первое сообщение
Ок. Я не тот, которому вы писали, но сформулируйте: а как, и откуда вылезает 401 Unauthorized? Почему появляется ошибка аутентификации? В yii2 есть очень хороший механизм аутентификации и авторизации == RBAC.

Науя проверять аутентификацию на стороне сервера, на уровне заголовков?

Всё это можно сделать на уровне приложения, но не сервера.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Как перехватить 401 ошибку?

Сообщение user »

Вот, что я хотел.
Используется клиент, для работы REST
Возникают ситуации, когда токен "протухает", мне нужно, когда сервер отдает 401 ошибку, получался новый токен, т.е. запускался некий метод, который это реализовывал, а не переадресовывался условно на site/error.
Это если в двух словах.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как перехватить 401 ошибку?

Сообщение Nex-Otaku »

1. Найди, где выбрасывается эта ошибка. Копни в исходники.
2. Либо "глуши" её блоком try-catch и обработай, либо, ещё лучше, переопредели код так, чтобы эта ошибка не выбрасывалась вообще, а шло по твоей логике.
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Как перехватить 401 ошибку?

Сообщение chesar »

На site/error переадресовывается в случае возникновения исключения. Для отлова исключений предусмотрены try catch
user
Сообщения: 159
Зарегистрирован: 2017.12.05, 16:55

Re: Как перехватить 401 ошибку?

Сообщение user »

try catch отрабатывает, но меня все равно перебрасывает на страницу ошибки :(

Код: Выделить всё

        try {
            тут запрос
        } catch (Exception $exception) {
            if($exception->statusCode == '401') {
		return $this->redirect(['site/index']);
            }
        }
сделал так, но не очень изящно, хочется безе перезагрузки
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Как перехватить 401 ошибку?

Сообщение Nex-Otaku »

Смотри стектрейс, бери в руки отладчик. Где-то что-то упускаешь.
Ответить