Я только что тестировал конечную точку входа (POST) с помощью Thunder Client (XHR). Когда вызов входа в систему завершается успешно один раз, любые последующие вызовы конечной точки входа вызывают перенаправление на корневой URL-адрес вместо возврата ответа JSON, сообщающего, что пользователь уже аутентифицирован. Это означает, что вызывающая сторона получит окончательный ответ 405 (метод не разрешен), поскольку на корневом URL-адресе нет конечной точки POST.
Раньше мы могли контролировать это ошибочное поведение с помощью изменение промежуточного программного обеспечения RedirectIfAuthenticated и перенаправление только в том случае, если это не XHR. В Laravel 11 это промежуточное программное обеспечение было перенесено в сам фреймворк. Я также слышал, что они устранили саму проблему, поэтому больше нет необходимости редактировать промежуточное программное обеспечение, но я все еще вижу ошибку.
Я также попробовал новый вспомогательный метод Laravel 11 для переопределения такого поведения перенаправления (в bootstrap/app.php):
Код: Выделить всё
$middleware->redirectUsersTo(function() {
if(request()->wantsJson()) {
return response()->json(['result' => 'success'], 200);
} else {
return '/home';
}
});
Обновить
Я обнаружил, что добавление следующего кода в дескриптор промежуточного программного обеспечения RedirectIfAuthenticated исправляет ошибки. проблема:
Код: Выделить всё
if ($request->expectsJson())
return response()->json(['message' => 'authenticated.'], 200);
Подробнее здесь: https://stackoverflow.com/questions/782 ... d-behavior
Мобильная версия