【问题标题】:Laravel v8.x - Jetstream Inertia, 419 page expired on productionLaravel v8.x - Jetstream Inertia,419 页面在生产中过期
【发布时间】:2022-01-06 00:10:46
【问题描述】:

enter image description here

页面已过期 419 在生产时出现。 我尝试运行 php artisan clear:cachephp artisan config:cachephp artisan key:generate,并更改 SESSION_DOMAIN同域,但是页面还是报错

如果我停用 CSRF 中间件,它没有错误,但我无法进入下一页。

我可以在本地运行它,但是当我在本地使用生产数据库时会出现相同的错误页面。

【问题讨论】:

  • 欢迎来到 SO .. 读过文档吗? inertiajs.com/csrf-protection
  • 只需在主刀片中添加这个

标签: php laravel inertiajs jetstream expired-sessions


【解决方案1】:

我通过从主要的blade.php模板中删除这个元来修复它。

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

因为惯性页面上的这个警告:

如果您使用 Laravel,请务必从项目中省略 csrf-token 元标记,因为这会阻止 CSRF 令牌正确刷新。

【讨论】:

  • 非常感谢!
【解决方案2】:

我认为 419 PAGE EXPIRED 可能存在两个或更多问题。

我无法通过更改 CRSF 令牌、删除它或禁用它来使其工作。

我认为实际原因与存储 SESSION_DRIVER 数据的权限有关。

默认情况下,.env 具有 SESSION_DRIVER=database。如果您的文件权限正确,则将数据库存储更改为文件存储 SESSION_DRIVER=file 有效。正确设置文件权限后,如果您愿意,请改回 SESSION_DRIVER=database。

我使用的是 SQLite3,唯一有效的方法是数据库位于 ~/laravel/stoarage/sqlite3.database

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2019-08-15
    • 2020-05-22
    • 2022-06-11
    • 2020-07-31
    • 2021-08-30
    • 2021-04-22
    相关资源
    最近更新 更多