Как изменить промежуточное ПО laravel, чтобы ajax-запросы не выполнялись из-за истечения времени ожидания сеанса для входа
Я надеюсь, что кто-то может определить эту проблему и сказать мне, где искать, чтобы решить ее. Вот сценарий. Я захожу на свой сайт и некоторое время играю с ним, затем оставляю страницу открытой и ложусь спать. Когда я просыпаюсь, страница все еще открыта. Если я щелкаю ссылку на новую страницу, промежуточное ПО аутентификации распознает, что у меня истекло время сеанса, больше не проходит проверку подлинности, и выводит меня на страницу входа для повторного входа. Отлично, это то, что я хочу.
Теперь, если это тот же сценарий, за исключением того, что я просыпаюсь, страница все еще открыта, и я нажимаю кнопку, которая отправляет ajax-запрос (на маршрут, защищенный промежуточным программным обеспечением auth), запрос просто не выполняется, но не распознает, что я больше не аутентифицируется и не пинает меня обратно на страницу входа.
Что я могу изменить, чтобы неудачный запрос ajax по причине отсутствия аутентификации перешел на страницу входа?
1 ответ
Вы можете просто создать отдельное промежуточное ПО под названием ajaxAuthenticationCheck
который содержит это в handle
метод:
if ($request->ajax() && ! auth()->check()) {
auth()->logout();
return redirect()->back();
}
И установите его на каждом маршруте AJAX.