Как перехватить 401 ошибку?
Как перехватить 401 ошибку?
Как можно перехватить код состояния 401 в методе контроллера, чтобы выполнить определенные действия?
Re: Как перехватить 401 ошибку?
Если Вас правильно понял
Код: Выделить всё
Yii::$app->getResponse()->getStatusCode()
Re: Как перехватить 401 ошибку?
если бы все так было очевидно, я бы не задавал тут этот вопросAuramel писал(а): ↑2018.02.15, 16:49 Если Вас правильно понялКод: Выделить всё
Yii::$app->getResponse()->getStatusCode()
Re: Как перехватить 401 ошибку?
ну так уточните
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Как перехватить 401 ошибку?
Ок. Я не тот, которому вы писали, но сформулируйте: а как, и откуда вылезает 401 Unauthorized? Почему появляется ошибка аутентификации? В yii2 есть очень хороший механизм аутентификации и авторизации == RBAC.
Науя проверять аутентификацию на стороне сервера, на уровне заголовков?
Всё это можно сделать на уровне приложения, но не сервера.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Как перехватить 401 ошибку?
Вот, что я хотел.
Используется клиент, для работы REST
Возникают ситуации, когда токен "протухает", мне нужно, когда сервер отдает 401 ошибку, получался новый токен, т.е. запускался некий метод, который это реализовывал, а не переадресовывался условно на site/error.
Это если в двух словах.
Используется клиент, для работы REST
Возникают ситуации, когда токен "протухает", мне нужно, когда сервер отдает 401 ошибку, получался новый токен, т.е. запускался некий метод, который это реализовывал, а не переадресовывался условно на site/error.
Это если в двух словах.
Re: Как перехватить 401 ошибку?
1. Найди, где выбрасывается эта ошибка. Копни в исходники.
2. Либо "глуши" её блоком try-catch и обработай, либо, ещё лучше, переопредели код так, чтобы эта ошибка не выбрасывалась вообще, а шло по твоей логике.
2. Либо "глуши" её блоком try-catch и обработай, либо, ещё лучше, переопредели код так, чтобы эта ошибка не выбрасывалась вообще, а шло по твоей логике.
Re: Как перехватить 401 ошибку?
На site/error переадресовывается в случае возникновения исключения. Для отлова исключений предусмотрены try catch
Re: Как перехватить 401 ошибку?
try catch отрабатывает, но меня все равно перебрасывает на страницу ошибки
сделал так, но не очень изящно, хочется безе перезагрузки
Код: Выделить всё
try {
тут запрос
} catch (Exception $exception) {
if($exception->statusCode == '401') {
return $this->redirect(['site/index']);
}
}
Re: Как перехватить 401 ошибку?
Смотри стектрейс, бери в руки отладчик. Где-то что-то упускаешь.