Laravel v8.x - Jetstream Inertia, страница 419 просрочена на производстве

введите описание изображения здесь

страница просрочена 419 появляется в процессе производства. Я попытался запустить php artisan clear: cache , php artisan config:cache, php artisan key:generate, а также изменить SESSION_DOMAIN с тем же доменом, но на странице все еще возникает ошибка

если я деактивирую промежуточное ПО CSRF, ошибки не будет, но я не смогу перейти на следующую страницу.

Я могу запустить его локально, но когда я использую производственную базу данных локально, у меня такая же страница с ошибкой.

3 ответа

Я думаю, что с 419 PAGE EXPIRED могут быть две или более проблем.

Мне так и не удалось заставить его работать, изменив токен CRSF, удалив его или отключив.

Я думаю, что фактическая причина связана с разрешениями, в которых хранятся данные SESSION_DRIVER.

По умолчанию .env имеет SESSION_DRIVER=database. Изменение хранилища базы данных на хранилище файлов SESSION_DRIVER=file работает, если ваши права доступа к файлам правильные. Как только вы правильно установите права доступа к файлу, вернитесь к SESSION_DRIVER=database, если хотите.

Я использовал SQLite3, и это работало только в том случае, если база данных находилась в ~/laravel/stoarage/sqlite3.database.

Я исправил это, удалив эту мету из основного шаблона blade.php.

      <meta name="csrf-token" content="{{ csrf_token() }}">

из-за этого предупреждения на странице inertiajs:

Если вы используете Laravel, не забудьте опустить метатег csrf-token в своем проекте, так как это помешает правильному обновлению токена CSRF.

Использование useForm вместо Inertia решило это для меня.

Ссылка: https://laracasts.com/discuss/channels/inertia/inertiajs-vite-in-production-error-419?page=1&amp;amp;replyId=843186

Другие вопросы по тегам