В Laravel метод unauthenticated
вызывается, когда пользователь пытается получить доступ к защищенному маршруту без аутентификации. Изначально, при вызове этого метода, Laravel возвращает JSON-ответ с сообщением об ошибке "Unauthenticated." и кодом состояния 401.
Однако, вы можете изменить это поведение и использовать свое собственное сообщение об ошибке. Для этого вам нужно переопределить метод unauthenticated
в вашем классе app/Exceptions/Handler.php
.
Вот пример реализации:
use IlluminateAuthAuthenticationException; use IlluminateFoundationExceptionsHandler as ExceptionHandler; class Handler extends ExceptionHandler { // ... protected function unauthenticated($request, AuthenticationException $exception) { // Проверяем тип запроса (web или api) if ($request->expectsJson()) { return response()->json(['error' => 'Custom unauthenticated message'], 401); } else { return redirect()->guest('login'); } } // ... }
В данном примере мы проверяем тип запроса, используя метод $request->expectsJson()
. Если тип запроса - JSON, мы возвращаем JSON-ответ с нашим собственным сообщением об ошибке и кодом состояния 401. В противном случае, если тип запроса - не JSON, мы перенаправляем пользователя на страницу логина.
Вы можете изменить 'Custom unauthenticated message'
на любое сообщение об ошибке, которое хотите отображать при отсутствии аутентификации.
После внесения изменений в класс Handler.php
, Laravel будет использовать вашу кастомную ошибку unauthenticated
, когда пользователь пытается получить доступ к защищенному маршруту без аутентификации.