0

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

登录后,用户可以创建/编辑/删除数据(保持简单)。由于后端是无状态的,我无法使用 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 请求一起发送?还有其他建议或想法吗?我对这个问题有错误的方法吗?您将如何将用户传递给 rest api 调用?

4

1 回答 1

2

通过FOSOAuthServerBundle使用 OAuth 进行身份验证

或者像 OAuth 那样在请求正文或 Authentication 标头中发送您现有的令牌。

于 2013-04-27T07:03:56.420 回答