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

如何将Swagger与Laravel集成?集成后接口返回419错误怎么解决

问题产生原因

Laravel返回419 Page Expired错误的核心是CSRF令牌校验未通过。
Laravel默认给web中间件组下所有非GET请求开启CSRF校验,你遇到该问题的常见原因有两个:

  1. api/login路由错误定义在了routes/web.php文件中,归属到了web中间件组,请求时未携带CSRF令牌触发校验失败
  2. 请求头未携带Accept: application/json,导致校验失败时Laravel返回了默认的HTML错误页面而非JSON格式报错。
解决方案
  • 优先调整路由分组:将所有API接口路由定义在routes/api.php文件中,该文件下的路由默认归属api中间件组,默认关闭CSRF校验,且会自动添加/api路由前缀,无需手动配置。
  • 若必须保留路由在web中间件组,可将对应路由加入CSRF校验排除名单:
    打开app/Http/Middleware/VerifyCsrfToken.php,修改$except属性:
    protected $except = [
        'api/login',
        // 其他需要跳过CSRF校验的路由
    ];
    
  • 接口请求时主动添加请求头Accept: application/json,确保异常场景下返回JSON格式响应,便于后续问题排查。
  • 若场景需要保留CSRF校验,可先获取XSRF-TOKEN cookie值,在请求时携带X-XSRF-TOKEN请求头即可通过校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:51:01