获得:
"The CSRF token is invalid. Please try to resubmit the form."
控制器:
$message = new Message();
$form = $this->createForm(new MessageType($locales), $message);
$form->handleRequest($request);
if ($form->isSubmitted()) {
if ($form->isValid()) {
...
// never reached
}
}
检查原始POST数据,它确实包含_token
字段:
message[title]: Test
message[subtitle]:
message[_token]:0LpwU3llG-FhyEc0o12b7rU0Pg2zSAb7xpUwAF1Xw3g
所以这不是很多人错过{{ form_rest(form) }}
答案 0 :(得分:0)
您是否从文档(http://symfony.com/doc/current/cookbook/security/csrf_in_login_form.html)中读到了这些内容?
首先,配置安全组件,以便它可以使用CSRF保护。安全组件需要CSRF令牌提供程序。您可以将其设置为使用安全组件
中提供的默认提供程序
# app/config/security.yml
security:
# ...
firewalls:
secured_area:
# ...
form_login:
# ...
csrf_token_generator: security.csrf.token_manager
我想你可能需要指定哪个令牌管理器用于_token