NeuroZ
@NeuroZ
PHP (Laravel, Joomla!)

Laravel — ошибка токена 419. Как исправить?

Всем привет!
Подскажите, столкнулся с проблемой, и не пойму в каком направлении искать решение. В интернете много чего перебрал, но такое чувство, что это всё не мой случай.

Есть сайт с формами (авторизация и не только). Открываю инструмент разработчика (F12) и слежу за <meta token>.
При авторизации выдает корректный токен (корректность проверяю исходя из того, что могу разлогиниться без ошибки).
Но при переходе на одни страницы - токен меняется на старый (как будто из кэша берется), а на другие - подтягивается нормально (актуальный токен).
Если рефрешнуть страницы с неправильным токеном - то он обновляется на корректный.
Из-за чего такое происходит? И как исправить такое поведение?
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
NeuroZ
@NeuroZ Автор вопроса
PHP (Laravel, Joomla!)
Разобрался в чем дело. SEO-шник попросил добавить в заголовки Expires (для разных типов страниц - разный Expires). Так вот из-за этого и не обновлялся токен. Пришлось убрать из контроллера этот заголовок.

В связи с этим вопрос
можно ли как-то сделать, чтобы и Expires задавался программно (по условию SEO), но и чтобы корректному формированию токена это не мешало?

Update: заголовки оставил, убрал csrf из некоторых форм. Кому интересно почему - читайте комментарии ниже)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Укажите в форме метод и поле с токеном.
method="POST" Для PUT/POST/PATCH/DELETE

<form action="{{ route('profile.update') }}" method="POST" enctype="multipart/form-data">
	@csrf
	{{-- @method('POST') --}}
	@method('PUT')
	.......................
</form>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы