【问题标题】:Symfony CSRF check failingSymfony CSRF 检查失败
【发布时间】:2016-04-16 17:48:40
【问题描述】:

获取:

"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) }}的问题

【问题讨论】:

    标签: symfony csrf


    【解决方案1】:

    您是否从文档 (http://symfony.com/doc/current/cookbook/security/csrf_in_login_form.html) 中阅读了此内容?

    首先,配置安全组件,使其可以使用 CSRF 保护。 Security 组件需要一个 CSRF 令牌提供程序。您可以将其设置为使用安全组件中可用的默认提供程序

    # app/config/security.yml 
    security: 
      # ... 
      firewalls: 
        secured_area: 
          # ... 
          form_login: 
            # ... 
            csrf_token_generator: security.csrf.token_manager
    

    我认为您可能需要指定用于 _token 的令牌管理器

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2018-06-19
      • 2020-10-12
      • 1970-01-01
      • 2021-05-19
      • 2011-07-03
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多