上へ戻る

Laravelのフォーム送信で「TokenMismatchException in VerifyCsrfToken.php」エラーの対処方法。

Pocket

PHPのフレームワークでもあるLaravelの最初のすんごい入門部分でつまづいたので解決方法をシェアします。

流れとしては
・route.phpでviewのテンプレートファイルを表示
・テンプレートファイルにinput type=”text”の入力フィールドを作成
・送信を押したら、Controllerの中で制御して同じURL読み込んでinputが表示されるようにする。

参考にしたのは「ビギナーのためのLaravel入門」グループ のページでしたが、送信ボタンを押すとこんな画面が表示される。


2

「TokenMismatchException in VerifyCsrfToken.php」
チュートリアルサイトでは対象としているのがLaravelのバージョンが古かったのですが、最新版はLaravel5になっているので、POSTアクションで送信する場合は標準でCSRFチェックがかかってきます。
(CSRFとはWEBサービスへの攻撃方法の一つで、リクエストの際などに攻撃的内容が含まれていると意図していない動作が行われてしまう。)

このエラーを解除する方法としてはCSRFチェックを無効化するのも一つの手ですがそうするとCSRFチェックがWEBサービス全体にかからないようになってしまいます。

基本Laravel5ではPOSTで値を渡す場合はcsrfトークンを発行して渡せばOK。



   


このコードをform内のsubmitの前にでも置けば送信してもしっかりと表示されます。


2
同じエラーでチェック外していたりする人が多そうなのでセキュリティ考えてもコメントアウトするのではなくトークン発行しましょう。



Laravel5を勉強するなら持っておきたい一冊。


ではでは。

最新投稿された記事はいかがですか?

1987年2月生まれ、滋賀県湖南市育ち、現在湖南市の三雲駅から徒歩20分超の場所でコワーキングスペース「今プラス」の管理人をしております。
続きを読む