遇到“CSRF Token Mismatch”错误时,需确保表单包含@csrf令牌、AJAX请求携带X-CSRF-TOKEN头、会话配置正确、路由应用web中间件且未被排除、必要时调整会话过期时间或前端刷新机制。

如果您在使用 Laravel 开发 Web 应用时提交表单,却遇到“CSRF Token Mismatch”错误,说明当前请求未能通过 Laravel 内置的 CSRF 验证机制。这通常发生在 AJAX 请求、表单提交或会话过期等场景中。以下是解决此问题的具体方法。
本文运行环境:MacBook Pro,macOS Sonoma
Laravel 默认要求所有 POST、PUT、PATCH 和 DELETE 请求携带有效的 CSRF Token。如果表单中未包含该令牌,服务器将拒绝请求。
1、在 Blade 模板中使用 @csrf 指令插入隐藏输入字段。
2、检查 HTML 输出是否包含类似以下代码:
zuojiankuohaophpcninput type="hidden" name="_token" value="your-token-here">。
3、若手动编写表单,请改用 {{ csrf_field() }} 生成令牌输入框。
在使用 JavaScript 发起 AJAX 请求时,必须手动将 CSRF Token 添加到请求头或数据体中,否则请求会被拦截。
1、从页面的 meta 标签中获取令牌值:
let token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
2、设置全局 Axios 默认头(如使用 Axios):
axios.defaults.headers.common['X-CSRF-TOKEN'] = token;
3、或在每次请求中手动添加头信息:
headers: { 'X-CSRF-TOKEN': token }
4、确保页面存在如下 meta 标签:
<meta name="csrf-token" content="{{ csrf_token() }}">
CSRF Token 依赖于用户会话,若会话无法正确保存或跨域配置不当,会导致令牌失效。
1、确认 config/session.php 中的 'domain' 和 'secure' 设置与当前访问地址匹配。
2、如果使用 HTTPS,请确保 'secure' => true 并且浏览器地址栏显示安全连接。
3、检查 Cookie 是否成功写入浏览器,排除因域名、子域不一致导致的会话丢失问题。
某些情况下,开发者可能无意中将路由定义在未应用 CSRF 中间件的组外,或在中间件中错误地排除了必要路径。
1、查看 app/Http/Kernel.php 文件中的 web 中间件组是否包含 \App\Http\Middleware\VerifyCsrfToken::class。
2、确认您的路由被包裹在 Route::middleware(['web']) 中。
3、检查 $except 数组是否错误地排除了应受保护的路由。
长时间未操作可能导致会话和 CSRF Token 失效,尤其是在高安全性要求的应用中。
1、修改会话生命周期,在 config/session.php 中调整 'lifetime' 值(单位:分钟)。
2、在前端监听页面可见性变化或用户活动,检测空闲时间过长后提示用户刷新页面以获取新 Token。
3、对于单页应用(SPA),可在拦截器中检测 419 响应状态码,并触发页面重载以重新获取令牌。
以上就是laravel怎么处理CSRF token mismatch错误_laravel CSRF Token mismatch解决方法的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                 
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                             
                                
                                 收藏
收藏
                                                                            Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号