@teimur

Как в Laravel в методе unauthenticated писать свою ошибку?

Суть вопроса такова, у меня приходят запросы по API. Я использую класс Illuminate\Auth\Middleware\Authenticate
Переопределяю функцию protected function authenticate($request, array $guards)
И делаю свои проверки авторизации.
Но если по каким то причинам авторизация не прошла мне нужно вернуть JSON со своей ошибкой
Я вызываю $this->unauthenticated($request, $guards); Но ошибка там простейшая
{
    "message": "Unauthenticated."
}


Как мне вызывать свою ошибку, например:
{
    "message": "My error.",
    "code": 1,
}

И при этом выдавать код 401
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 2
Shutik
@Shutik
Погромист халявщик
//middleware/Authenticate.php
protected function unauthenticated($request, array $guards){
        abort(response()->json([
            'code' => 1,
            'message' => 'My error.',], 401));
}
Ответ написан
@iljaGolubev
//app/Exceptions/Handler.php
// добавить
protected function unauthenticated($request, AuthenticationException $exception)
    {
       # тут  что то достать из реквеста или исключения
       # вернуть свой респонз вместо
       parent::unauthenticated($request, $exception);
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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