我正在开发 Laravel 8 框架, 我已在实时 Cpanel 服务器上添加了该应用程序,然后它开始显示以下错误:
419页已过期
我知道通常缺少 CSRF 令牌将是主要问题,但在此,我添加了 CSRF 令牌, 我正在使用 LARAVElblade 语法,因此添加 LARAVElblade 表单语法“令牌”(CSRF)将直接添加。
{{ Form::open( [ "url" => \URL::route("front.login.check"), "autocomplete"=>false,"id" => "login_form" ] ) }}
这将自动添加 CSRF, 我尝试过直接添加, 但每个
POST
请求最终都会出现在 419 PAGE EXPIRED
页面上。
我已经检查了什么?
CSRF Token
不缺在Form
419
页面php artisan cache:clear
和 dump-autoload
命令,但问题仍然存在。storage
、vendor
和 cache
文件夹添加了 755权限。
请帮助我解决这个问题我接下来需要检查什么才能解决这个问题?
在测试您的应用程序是否存在此错误之前,应用/完成“步骤 12”之前的所有步骤。
.env 文件内容应用上述 3 个步骤。
将myapp.local 更改为您的应用程序域。
APP_URL="http://myapp.local"
SESSION_LIFETIME=1440
SESSION_DOMAIN=myapp.local
SESSION_SECURE_COOKIE=false
PUT
/
POST
/
DELETE
/等)HTTP 请求。
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
)。
<meta>
标签”添加到所有主 VIEW 模板/布局的
<head>
标签内。即:resources/views/layouts/app.blade.php 和 resources/views/layouts/guest.blade.php 和 resources/views/welcome.blade.php
<meta name="csrf-token" content="{{ csrf_token() }}">
npm run dev
)。资源/js/app.js
$.ajaxSetup({
headers: {
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
"X-Requested-With": "XMLHttpRequest"
}
});
php artisan key:generate
)。
php artisan cache:clear
)。
chmod -R 755 storage && chmod -R 755 "storage/framework/sessions" && chmod -R 755 "bootstrap/cache"
)。
.env 文件内容
将myapp.local 更改为您的应用程序域。
SANCTUM_STATEFUL_DOMAINS="myapp.local"
附录2:.env 文件内容
SESSION_DRIVER=file
附录3:禁用浏览器缓存。这在您的开发过程中可能是有益的。
Windows 上:Shift + F5
或
Ctrl + Shift + r
以及在Mac 上:
⌘ + Shift + r
)。
测试您的应用程序!检查您是否仍然收到错误。
仅当您到达步骤 12 并且仍然遇到相同错误时,才执行以下步骤。
A.清除所有网络浏览器缓存和cookie。 测试您的应用程序!
B.打开一个完全不同的网络浏览器并再次测试。如果您一直使用Google Chrome / Safari,请尝试使用 Firefox 进行测试。 测试您的应用程序!
C.重新启动计算机并再次测试。测试您的应用程序!
SESSION_SECURE_COOKIE 标志设置为 true 并且您的请求是在不安全的连接下发出时,也可能会发生这种情况,例如您通过 http://yourdomain.com 而不是 https:/ 访问您的应用程序/yourdomain.com。 set-cookie 标头将被阻止,因为它是在不安全的连接下接收的,从而导致上述会话问题。
php artisan route:clear
user_id
表中的
sessions
字段反映您的用户 ID 的正确格式。