首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOSRestBundle &无效表单CRF令牌

FOSRestBundle &无效表单CRF令牌
EN

Stack Overflow用户
提问于 2016-04-05 08:06:00
回答 1查看 1.8K关注 0票数 2

我正在尝试实现FOSRestBundle和Symfony表单。我找到了这个教程,但我对部件有问题

代码语言:javascript
复制
private function processForm(PageInterface $page, array $parameters, $method = "PUT")
{
    $form = $this->formFactory->create(new PageType(), $page, array('method' => $method));
    $form->submit($parameters, 'PATCH' !== $method);
    if ($form->isValid()) { //form is not valid.
        $page = $form->getData();
        $this->om->persist($page);
        $this->om->flush($page);
        return $page;
    }
    throw new InvalidFormException('Invalid submitted data', $form);
}

错误: CSRF令牌无效。请尽量重新提交表格。

这里是教程中的控制器。这是我的班长:

代码语言:javascript
复制
public function newAction(Request $request)
{

    $form = new EntryType();
    $newEntry = $this->container->get('entries.entry.handler')->post(
        $request->request->get($form->getName())
    );

    return View::create()
        ->setStatusCode(200)
        ->setFormat('json')
        ->setSerializationContext(SerializationContext::create()->setGroups(array('list')))
        ->setData($newEntry);
}

我应该跳过检查isValid()还是以某种方式修复这个问题?多么?

好了,现在很清楚了。应禁用CRF验证(csrf_protection)。

从php客户端调用rest post api时CSRF令牌无效 https://github.com/liuggio/symfony2-rest-api-the-best-2013-way/issues/1#issuecomment-31435232 在使用RESTful API时是否需要CSRF验证?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 08:47:30

来自教程第3部分:

可以根据用户的角色禁用CSRF。

代码语言:javascript
复制
# app/config/config.yml
fos_rest:
    disable_csrf_role: ROLE_API
    # you can also try
    # disable_csrf_role: IS_AUTHENTICATED_FULLY

也请参阅这个问题

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36420516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档