发送用户ID以及任何REST API调用?

时间:2013-04-26 19:08:54

标签: rest symfony angularjs fosrestbundle

我正在后端构建一个带有symfony2 + FosRestBundle的应用程序,在前端构建一个angularjs。这是一个单页面应用程序。后端和客户端(使用来自rest api / backend的数据)在同一台服务器上。

登录后,用户可以创建/编辑/删除数据(以保持简单)。由于后端是无状态的,我无法使用symfony2在服务器上创建任何类型的身份验证上下文,因此我无法在api调用中获取用户ID。

因此,在登录时,我创建一个令牌并将其保存在客户端应用程序的根范围内。现在关于这个问题。由于登录用户正在操作数据,例如编辑帖子或将帖子从已发布更改为未发布,我需要传递用户ID以及api调用。但似乎某些请求类型仅限于参数,例如

public function closePostAction($slug)
{} // "close_post"      [PATCH] /posts/{slug}/close

您可以在此处找到有关REST操作的更多信息https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Resources/doc/5-automatic-route-generation_single-restful-controller.md

那么可以发送用户ID或任何其他类型的参数以及PUT / PATCH / UPDATE / DELETE请求吗?还有其他建议或想法吗?我对这个问题的解决方法是否错误?你如何将用户传递给休息api电话?

1 个答案:

答案 0 :(得分:2)

使用OAuth进行身份验证,使用FOSOAuthServerBundle

或者像OAuth一样在请求正文或身份验证标头中发送您现有的令牌。