首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与FosRestBundle的FosUserBundle集成

与FosRestBundle的FosUserBundle集成
EN

Stack Overflow用户
提问于 2012-05-16 02:35:45
回答 1查看 2.8K关注 0票数 6

有没有人知道如何在实现FOSUserBundle的同时实现FOSRestBundle?我已经有一个使用Symfony 2和FOSUserBundle开发的Web应用程序,但我想为一个API层添加FOSRestBundle。我希望能够向它传递用户名和密码,并从FOSUserBundle接收代表已登录用户的某种类型的令牌,然后我可以在其他api调用之间传递这些令牌。有谁知道做这件事的好方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-28 16:33:41

FOSUserBundle本身应该是"restful“的,这意味着它可以遵循REST规则。

然而,它并不是设计用于原生使用FOSRestBundle的,最简单的方法是覆盖包中的UsersController并调整您的操作。

例如,要允许RESTFul注册,您可以编写以下操作:

代码语言:javascript
复制
    public function postUsersAction()
    {
        $form = $this->container->get('fos_user.registration.form');
        $formHandler = $this->container->get('fos_user.registration.form.handler');
        $confirmationEnabled = $this->container->getParameter('fos_user.registration.confirmation.enabled');

        $process = $formHandler->process($confirmationEnabled);

        if ($process) {
            $user = $form->getData();
            $authUser = false;

            if ($confirmationEnabled) {
            } else {
                $authUser = true;
            }

            $response = new Response();

            if ($authUser) {
                /* @todo Implement authentication */
                //$this->authenticateUser($user, $response);
            }

            $response->setStatusCode(Codes::HTTP_CREATED);
            $response->headers->set(
                'Location',
                $this->generateUrl(
                    'api_users_get_user',
                    array('user' => $user->getId()),
                    true
                )
            );

            return $response;
        }

        return RestView::create($form, Codes::HTTP_BAD_REQUEST);
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10606792

复制
相关文章

相似问题

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