You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Postman调用Laravel Passport登录接口出现CSRF token mismatch错误

问题原因
  • 你将API认证路由定义在了routes/web.php文件中,Laravel默认给web路由组全局加载了VerifyCsrfToken中间件,所有POST类型的web路由请求都要求携带合法CSRF令牌,Postman调用时未传递该令牌因此触发校验失败报错。
  • Passport属于API身份认证方案,本身就不适合挂载到web路由组的规则下,web路由组的CSRF校验是为前后端不分离的web页面场景设计的,API场景无需该校验。
解决方案

推荐方案(生产环境可用)

将你的auth相关路由从routes/web.php移动到routes/api.php文件中:

Route::group(['prefix' => 'auth'], function() {
    Route::post('/login', [AuthController::class, 'login'])->name('login');
    Route::post('/register', [AuthController::class, 'register'])->name('register');
});
  • Laravel的api路由组默认不会加载CSRF校验中间件,同时会自动给所有路由加/api前缀,调整后Postman的请求地址改为http://127.0.0.1:8000/api/auth/login即可,其余请求头、请求体配置不需要改动。
  • 请提前确认config/auth.php配置文件中,guards.api.driver参数已设置为passport,符合Passport的配置要求。

临时调试方案(不推荐生产环境使用)

如果一定要保留路由在routes/web.php中,可以将auth相关路径加入CSRF校验排除列表:
打开app/Http/Middleware/VerifyCsrfToken.php文件,修改$except属性:

protected $except = [
    '/auth/*',
];

注意:该方案会关闭对应路由的CSRF防护,存在跨站请求伪造安全风险,仅可用于本地调试,不可在生产环境使用。

内容的提问来源于stack exchange,提问作者sabunan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:42:02