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

Laravel 11:如何为Webhook路由禁用CSRF验证?

Laravel 11 中 Webhook 报 HTTP 419 错误的解决办法

HTTP 419 错误是 CSRF 验证失败导致的,Laravel 11 确实移除了传统的 App\Http\Middleware\VerifyCsrfToken 单独文件,改用全局中间件配置的方式来设置 CSRF 例外,具体操作如下:

  1. 打开 bootstrap/app.php 文件
    这是 Laravel 11 中配置中间件的核心文件。

  2. 配置 CSRF 验证例外
    在应用实例的链式调用中找到(或添加)->withMiddleware() 闭包,通过 validateCsrfTokens() 方法定义需要排除 CSRF 验证的路由:

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        api: __DIR__.'/../routes/api.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->validateCsrfTokens(function (Csrf $csrf) {
            // 将你的 Webhook 路由添加到例外列表
            $csrf->exclude([
                '/webhook/your-service', // 替换为实际的 Webhook 路由路径
                '/webhook/another-endpoint', // 可添加多个路由
                '/webhook/*' // 也可以用通配符匹配所有子路径
            ]);
        });
    })
    ->create();
  1. 注意事项
  • 确保排除的路由路径和实际请求的路径完全一致,包括路由前缀(比如项目有 /api 前缀的话要加上)。
  • 如果你的 Webhook 路由是定义在 routes/api.php 中的,Laravel 11 默认的 API 中间件组已经排除了 CSRF 验证,这种情况下不需要额外配置。
  • 检查远程服务的请求路径、方法是否和你定义的路由完全匹配,避免因为路径错误导致的验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:54:50