假設我們要跳過的 url 是 /webhook/reply

Laravel 11 之前的實作方式

在 Laravel 11,最容易的方法是修改 AppServiceProvider.php

class AppServiceProvider extends ServiceProvider
{
    ...
    public function boot()
    {
		    ...

        \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::except([
            'webhook/reply',
            // 也可以用萬用字元
            'otherwebhook/*',
        ]);
    }
}

Laravel 12 的實作方式

return Application::configure(basePath: dirname(__DIR__))
    ...
    ->withMiddleware(function (Middleware $middleware) {
        //
        $middleware->validateCsrfTokens(except: [
            'webhook/reply',
            'webhook/*',
        ]);
    })
    ...

Reference

Laravel 11 – Disable CSRF for a route

https://laravel.com/docs/11.x/csrf

https://laravel.com/docs/12.x/csrf

Last modified: 2025-03-17

Author

Comments

Write a Reply or Comment

Your email address will not be published.