Laravel PHP. Error 419. Что делать?

На локалке одинаковые токены, а на хостинге другие, из-за этого ошибка 419.

Хост

5b7553da3251c742830271.jpeg

Локалка

5b7553f4ab891893704476.jpeg
  • Вопрос задан
  • 15781 просмотр
Решения вопроса 1
alexey_bille
@alexey_bille
Web developer
csrf токет по идее должен быть всегда уникальный (по крайней мере в рамках одной сессии) , судя по тому что у формы на onsubmit стоит "return false;", то могу предположить что форма отправляется через ajax, проверьте отправляется ли csrf-токен.
Форма отправляется на тот же сайт?
Или вы пытаетесь отправлять с локалки на хостинг форму? если так, то конечно будет 419, для этого и придуман csrf.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Vopp
Господа! Долго боролся с 419 ошибкой. Вообще нигде не написано, что причиной может быть кеш. Очистите всевозможный кеш. Мне помогло.

Реоптимизация класса loader:
php artisan optimize
Очистка кэша фасада:
php artisan cache:clear
Очистка кэша роутов:
php artisan route:cache
Очистка кэша view:
php artisan view:clear
Очистка кэша конфигов:
php artisan config:cache
Ответ написан
@borodatych
Добавлю свою лепту!
Оставил проект на ночь, а утром отправил Ajax запрос и получил такую же ошибку.
После F5 отбросило на страницу логина.
То есть, все просто - стух токен, учтите это!
Ответ написан
Комментировать
Ещё одна причина - время жизни сессии. При наличии авто входа авторизация не заметна, а вот токен создаётся заново. Следовательно остаётся либо продлевать сессию на время работы с формами, либо переходить на API с Ajax.
Ответ написан
Комментировать
@aavtuchovich
Решение данной ошибки находится в файле конфигурации session.php
Для использования на локальном сервере (http протокол) необходимо установить конфигурацию в false.
/*
    |--------------------------------------------------------------------------
    | HTTPS Only Cookies
    |--------------------------------------------------------------------------
    |
    | By setting this option to true, session cookies will only be sent back
    | to the server if the browser has a HTTPS connection. This will keep
    | the cookie from being sent to you if it can not be done securely.
    |
    */

    'secure' => env('SESSION_SECURE_COOKIE',true),
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы