2017-10-27 33 views
1

symfonyでcsrf_tokenを取得または設定するにはどうすればよいですか? ここに私のコードと私は、私がcsrf_tokenで行うことができますどのようにsymfony 3 csrfトークン

$username = $request->request->get('username'); 
$password = $request->request->get('password'); 

    if($request->isMethod('POST')){ 
     $headers = array('Accept' => 'application/json'); 
     $query = array('email' => $username, 'mdp' => $password); 

     $url = ' /**/ '; 
     $body = Unirest\Request\Body::json($query); 

     $response = Unirest\Request::post('$url',$headers,$body); 

     return new Response(json_encode($response)); 

    } 

    return $this->render('AppBundle:Default:index.html.twig'); 

感謝を知りません!

+0

あなたはドキュメントを読みましたか?あなたのフォームはどのように見えますか? – COil

+0

試しましたか? –

答えて

1

symfonyはデフォルトですべてのPOSTリクエストにCSRFトークンを提供しません。私の推奨は、Symfony Formsを使用して、CSRF保護機能をそのまま使用することです。これにより、フォーム提出の処理、検証ルールの追加、フォームのレンダリングなどの作業が楽になります。

1

Bartosz答えが可能です。お使いのコントローラで

<input type="hidden" name="_csrf_token" value="{{ csrf_token('my_form') }}" /> 

:あなたがあなたの小枝テンプレートで行うことができsymfonyのフォームを使用しない場合でも、

$csrfTtoken = $request->request->get('_csrf_token'); 
if ($this->isCsrfTokenValid('my_form', $csrfTtoken)) { 
    // csrf token is valid! 
} 
関連する問題