6

誰かがFOSUserBundleと一緒にFOSRestBundleを実装する方法の例やアイデアを持っていますか?すでにSymfony2とFOSUserBundleで開発されたWebアプリがありますが、APIレイヤーにFOSRestBundleを追加したいと思います。ユーザー名とパスワードを渡し、FOSUserBundleから、ログインしたユーザーを表すある種のトークンを受け取り、他のAPI呼び出し間で受け渡しできるようにしたいと考えています。誰かがこれを行うための良い方法を知っていますか?

4

1 に答える 1

3

FOSUserBundleつまり、REST の推奨事項に従う可能性があります。

ただし、これは でネイティブに動作するようには設計されていません。これFOSRestBundleを行う最も簡単な方法は、バンドル内の UsersController をオーバーライドし、アクションを適応させることです。

たとえば、RESTFul 登録を許可するには、次のアクションを記述できます。

    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);
    }
于 2012-08-28T08:33:40.973 に答える