2017-02-08 3 views
0

フォームにcsrfを挿入するように指示するリンクが多数見つかりました。しかし、あなたが何をするときにフォームがありますか?他のアプリがデータベースに記事を投稿できるようにするには、postメソッドを使用します。Laravel 5.3 - postメソッドを使用するTokenMismatchにはフォームがありません

public function store(Request $request) 
{ 
    if ($request->isMethod('post')) { 
     $solicitation = new Solicitation; 
     $solicitation->name = $request->name; 
     $solicitation->description = $request->description; 
     $solicitation->userid = $request->userid; 
     if ($request->hasFile('file')) { 
      $request->file('file')->move("uploads", $request->file('file')->getClientOriginalName()); 
      $solicitation->file = "http://192.168.1.85:3232/uploads/" . $request->file('file')->getClientOriginalName(); 
     } 
     $solicitation->save(); 
    } 
} 

とエラー:

TokenMismatchException in VerifyCsrfToken.php line 68: 

編集

回避策/ソリューション

ステップ1)ファイルを編集します:VerifyCsrfToken.php(アプリ\のHttp \ミドルウェア\ VerifyCsrfToken.php)

ステップ2)以下を変更します。

protected $except = [ 
    'solicitation/*', //INSERT THE NAME OF YOUR ROUTE HERE 
]; 

をお楽しみください。

答えて

2

あなたは

+0

実際の方法で投稿を更新します。 – Rosenberg

+0

それはそれを行う実際の方法です、残念私はちょうど残りの部分はほとんど自明であろうファイルを見つけた後に仮定しました。 – Adam

0

POSTメソッドを使用するたびに、_tokenパラメータをリクエストして送信する必要があります。

+0

トークンパラメータには何を追加しますか? – Rosenberg

+0

あなたの質問を更新し、コード作成要求を追加できますか? – Buglinjo

+0

CSRFトークンをリクエストから除外することは悪い考えです。 – Buglinjo

0

あなたは2つのオプション持つルートを除外するために、HTTP \ミドルウェアでVerifyCsrfTokenクラスを編集することができます:CSRFからこのルートを除外または要求にトークンを送信します。 https://laravel.com/docs/5.3/csrf#csrf-excluding-uris

0

APIを記述しているようです。 別のLaravelアプリケーションからリクエストを送信する場合、トークンは合同ではありません。 解決策は、現在のアプリケーションが予期して検証できる外部アプリケーションに要求署名/トークンを生成することです。 https://laravel.com/docs/5.3/passport

関連する問題