Laravel меняет мой токен CSRF, когда я делаю быстрые ajax-запросы на сервер

Я знаю, как использовать токены Laravel CSRF в формах и запросах ajax.

Я могу сделать одноразовый запрос ajax, и он работает.

Но если я очень быстро делаю два ajax-запроса POST (например, быстро щелкнув кнопку два раза), Laravel изменит мой токен CSRF, поэтому второй запрос завершится ошибкой. И форма на странице тоже не работает.

Если я нажимаю кнопку раз в секунду или около того, все работает нормально. Только быстрые или, возможно, параллельные запросы изменяют токен CSRF.

Любые идеи?

Я использую Ларавель 8.21.0


person Magmatic    schedule 18.06.2021    source источник
comment
Похоже, он может восстанавливаться при каждом вызове   -  person RiggsFolly    schedule 18.06.2021
comment
Может попробовать добавить загрузчик после нажатия кнопки, или отключить его   -  person work service    schedule 18.06.2021


Ответы (1)


Проблема заключалась в том, что я запускал Auth::login(user) для входа пользователя в наше промежуточное ПО при каждом запросе страницы. Оказывается, Laravel это не нравится.

Так что теперь я вызываю это только один раз, когда пользователь действительно входит в систему.

Кажется, теперь работает.

person Magmatic    schedule 18.06.2021