2016-04-15 63 views
0

获取:Symfony的CSRF勾选失败

"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

您是否阅读过文档(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

该令牌经理