すべてのPOSTリクエストに対してCSRFフィルターを適用する
Laravel のフィルターって本来はこう書くわけですが
<?php Route::post('user/register', ['before' => 'csrf', function() { return 'You are over 200 years old!'; }]);
POST するたびにいちいち before…
とか書きたくない。漏れがあったらやだし。なのでちょっとぐぐってみたところ stackoverflow の記事がひっかかりました。
php - Laravel 4 CSRF on all POST requests - Stack Overflow
…なんか苦肉の策感がすごい。いやいや、もうちょっとどうにかなるだろ、と思って調べてみたらどうにかなったよ。
こんな感じ。自力でフィルターを呼んでやるわけです。コメントにも書いてますが $request->getRealMethod()
とすれば POST / PUT / DELETE / PATCH
のリクエストの際にも CSRF のフィルターが呼ばれます。
追記
コントローラーでやりたい人はこうすればOK.
CSRF on all POST requests (Controller-based) | Laravel-Tricks.com