Laravel v8.x - Jetstream Inertia,419 页面在生产时已过期

Rif*_*a A 3 php expired-sessions inertiajs laravel laravel-jetstream

在此输入图像描述

生产时出现页面已过期 419。我尝试运行php artisan clear:cachephp artisan config:cachephp artisan key:generate,并使用相同的域更改SESSION_DOMAIN,但页面仍然错误

如果我停用 CSRF 中间件,它不会出现错误,但我无法转到下一页。

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

小智 5

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

<meta name="csrf-token" content="{{ csrf_token() }}">
Run Code Online (Sandbox Code Playgroud)

由于惯性页面上出现此警告:

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


小智 5

我认为 419 页已过期可能存在两个或多个问题。

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

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

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

我使用的是 SQLite3,它工作的唯一方法是数据库位于 ~/laravel/stoarage/sqlite3.database 位置