有没有人知道如何在实现FOSUserBundle的同时实现FOSRestBundle?我已经有一个使用Symfony 2和FOSUserBundle开发的Web应用程序,但我想为一个API层添加FOSRestBundle。我希望能够向它传递用户名和密码,并从FOSUserBundle接收代表已登录用户的某种类型的令牌,然后我可以在其他api调用之间传递这些令牌。有谁知道做这件事的好方法吗?
发布于 2012-08-28 16:33:41
FOSUserBundle本身应该是"restful“的,这意味着它可以遵循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);
}https://stackoverflow.com/questions/10606792
复制相似问题