Как изменить промежуточное программное обеспечение laravel, чтобы ajax-запросы не выполнялись из-за истечения времени ожидания сессии - PullRequest
0 голосов
/ 25 июня 2018

Я надеюсь, что кто-то может определить эту проблему и сказать мне, где искать, чтобы исправить ее.Вот сценарий.Я захожу на свой сайт и некоторое время играю с ним, затем оставляю страницу открытой и ложусь спать.Когда я просыпаюсь, страница все еще открыта.Если я щелкаю ссылку на новую страницу, промежуточное ПО аутентификации распознает, что у меня истекло время сеанса, больше не проходит проверку подлинности, и выводит меня на страницу входа для повторного входа.Отлично, это то, что я хочу.

Теперь, если это тот же сценарий, за исключением того, что я просыпаюсь, страница все еще открыта, и я нажимаю кнопку, которая отправляет ajax-запрос (на маршрут, защищенный промежуточным программным обеспечением auth), запрос просто не выполняется, но нене распознает, что я больше не аутентифицирован, и не возвращает меня на страницу входа.

Что я могу изменить, чтобы неудавшийся запрос ajax по причине отсутствия аутентификации перешел на страницу входа?

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете просто создать отдельное промежуточное программное обеспечение с именем ajaxAuthenticationCheck, которое содержит это в методе handle:

if ($request->ajax() && ! auth()->check()) {
    auth()->logout();
    return redirect()->back();
}

и установить его на каждом маршруте AJAX.

...