![](/img/trans.png)
[英]handling the The CSRF token in symfony's forms when in public REST context
[英]Symfony 3 csrf token
如何獲取或設置symfony的csrf_token? 這是我的代碼,我不知道如何使用csrf_token,
$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');
謝謝!
默認情況下,Symfony不會為每個POST請求提供CSRF令牌。 我的建議是使用開箱即用的Symfony表單為您提供CSRF保護。 在處理表單提交,添加驗證規則,呈現表單等等時,這也將使您的生活更加輕松。
巴托斯的答案是可能的。 但是,如果您不想使用Symfony表單,則可以在樹枝模板中執行以下操作:
<input type="hidden" name="_csrf_token" value="{{ csrf_token('my_form') }}" />
在您的控制器中:
$csrfTtoken = $request->request->get('_csrf_token');
if ($this->isCsrfTokenValid('my_form', $csrfTtoken)) {
// csrf token is valid!
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.