0
1

LaravelでのCSRF除外設定について

Posted at

LaravelでのCSRF除外設定について

先日、PHPでLaravelを用いた勉強をしていた際、LINE MessagingAPIを導入した時にwebhookにアクセスが通らないという問題が発生しました。解決まで少し時間がかかったので、備忘録として記事を書いておきます。

問題の発生

LINE MessagingAPIを導入する際、POST通信を行うためにCSRFから除外する必要があります。通常、その除外するURLを設定するファイルは app/Http/Middleware/VerifyCsrfToken.php の中に記述します。しかし、このファイルが見当たりませんでした。プロジェクトファイルの作成時にミスったかと思い、手動で作成してみましたが、それでも問題は解決しませんでした。

解決策

シンプルにリサーチ不足でした。Laravel Ver.11では、デフォルトで App\Http\Middleware\VerifyCsrfToken がなくなるとのことです。そのため、web.php に直接記述する方法を取りました。以下の通りです。

use Illuminate\Foundation\Http\Middleware\ValidateCsrfToken;

Route::post('/webhook', [LineBotController::class, 'webhook'])
    ->withoutMiddleware(ValidateCsrfToken::class);

あれ?VerifyCsrfTokenじゃないじゃん!と思うかもしれませんが、これは一貫性のために名称が変更されたとのことです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1