Laravel 报错 CSRF not found的处理办法
错误截图:
Laravel CSRF是Laravel为每个活跃用户的回话生成的一个用于验证用户身份的防止跨站请求伪造(CSRF)攻击的【令牌】。Laravel的建议是:
任何情况下当你在应用程序中定义 HTML 表单时,都应该在表单中包含一个隐藏的 CSRF 令牌字段,以便 CSRF 保护中间件可以验证该请求
而在我的项目中,我使用了laravel原生的用户注册登录模块,所以生成该验证令牌的地方在布局文件resource/views/layouts/app.blade.php文件中的头部meta标签中。此处报错CSRF未找到,很可能是这里出错。而网上一堆堆资料都是让直接去注释app/Http/Kernel.php中的\App\Http\Middleware\VerifyCsrfToken::class,这么做确实简单粗暴,但这岂不相当于在阉割Laravel这么强大的开发框架?
通过查看resource/views/layouts/app.blade.php文件,发现:
前一天晚上提交那次不小心删除了@endsection,导致模板解析成了:
html头部解析到了body标签中,所以导致了找不到CSRF的错误。
本文介绍了一种常见的Laravel开发问题——CSRF Token未找到错误,并详细解释了解决这一问题的具体步骤。作者在排查过程中发现是因为不小心删除了布局文件中的@endsection指令,导致HTML头部与body标签混乱,进而引发CSRF Token丢失的问题。
348

被折叠的 条评论
为什么被折叠?



