2017-04-02 11 views
2

私は銀行のAPIを使用しています。
銀行は私のウェブサイトに投稿要求を送信しますが、トークンフィールドが要求されていないと返信せず、TokenMismatchExceptionに直面しています。

この問題を解決するにはどうすればよいですか?ここで
は、コードをcorespondingされています。要するに
他のドメインからのリクエストを投稿する結果TokenMismatchException

public function submitPayment() 
{ 
    $api = 'test'; 
    $amount = '3443354'; 
    $redirect = URL::to('new-order/after-payment'); 
    $result = $this->send($api, $amount, $redirect); 
    $result = json_decode($result); 

    return redirect("https://example.com/$result->transId"); 
} 
+1

から_csrf_tokenに変更され

/** * Determine if the session and input CSRF tokens match. * * @param \Illuminate\Http\Request $request * @return bool */ protected function tokensMatch($request) { $sessionToken = $request->session()->token(); $token = $request->input('_csrf_token') ?: $request->header('X-CSRF-TOKEN'); if (! $token && $header = $request->header('X-XSRF-TOKEN')) { $token = $this->encrypter->decrypt($header); } if (! is_string($sessionToken) || ! is_string($token)) { return false; } return hash_equals($sessionToken, $token); } 

あなたは 'アプリ/ HTTP /ミドルウェア/ VerifyCsrfToken.php'が配列 –

+0

チェックアウトHTTP以外でのファイルにルートを追加することにより、CSRFトークンチェックを無効にすることができます://stackoverflow.com/questions/31427840/laravel-tokenmismatchexception/32125744#32125744 –

+0

@AkshayKhaleありがとう – mehdirahimi

答えて

1

あなたはあなたが機能を照らすオーバーライドすることができます

、そのために何か他のものにLaravelのCSRFトークンフィールド名としてデフォルト_tokenの名前を変更したい\ Foundation \ Http \ Middleware \ VerifyCsrfToken @ tokensMatch();App \ Http \ Middleware \ VerifyCsrfTokenクラスを開き、CSRFパラメータ名を変更します。

App \ Http \ Middleware \ VerifyCsrfTokenファイルに次のコードを追加できます。上記の関数ではCSRFフィールドが_token

関連する問題