在 public REST 上下文中以 symfony 的形式处理 CSRF 令牌

handling the The CSRF token in symfony's forms when in public REST context

我正在开发我的第一个 symfony (3) 应用程序。它是一个 REST 服务,可公开访问。 我正在使用 FOSRestBundle 执行此操作。 我迟早要添加一些管理表单,我可能想直接创建它们(不通过使用我自己的网络服务的额外工作)

我想知道在这种情况下如何处理 CSRF 令牌。我看到了不同的解决方案:

您认为这个(或其他)解决方案中的哪一个最好,您将如何编码?

我找到了一种方法,也许不是最好的方法,但它很有效:

$_format = $request->attributes->get('_format');
if ('html' == $_format) {
    $form = $this->createForm(ItopInstanceUserType::class, $itopInstanceUser);
} else {
    $form = $this->createForm(ItopInstanceUserType::class, $itopInstanceUser, ['csrf_protection' => false]);
}

对于我来说,忘记自己管理的CSRF令牌,检查Oauth认证等主题。

看这里:https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md

FOSOAuthServerBundle 与 FOSRestBundle 完美配合。