![](/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.