Когда запрос laravel не авторизован (он же «неаутентифицированные маршруты API»), laravel выдает одно и то же исключение, независимо от того, является ли он веб-или API-маршрутом.
Однако, когда исключение обрабатывается / обрабатывается приложением, ответ определяется как $request->expectsJson()
, если его true, он возвращает его как json, если нет, он будет действовать так, как если бы это был веб-маршрут.
Вышеприведенная функция проверяет несколько функций и возвращает true, если любое из них верно:
- header
X-Requested-With
=== XMLHttpRequest
- заголовок
Content-Type
содержит application/json
- заголовок
Content-Type
содержит подстановочный знак (*/*
)
- заголовок
Accept
содержит application/json
Убедитесь, что ваш запрос API соответствует любому из вышеописанных заголовков, и в этом случае должен возвращать ошибку аутентификации как json.
Для обеспечения того, чтобы маршруты API всегда выдавали ошибки аутентификации json, вы можете выполнить любое из следующих действий:
- переопределить заголовок запроса в поставщике услуг, если маршрут определен как маршрут API. (не пытайтесь сделать это в промежуточном программном обеспечении, оно может не работать)
- переопределить обработчик исключений таким же образом, как описано выше
- и, конечно, возможны и другие сценарии