在Symfony2中使用Rest API设置令牌客户端



我在一台服务器(S1)上使用symfony2制作了一个Rest API。

我在一台服务器(S2)上使用symfony2创建了一个应用程序。

S1:

工作得很好。它给出用户信息的json响应,取决于给定的url。

S2: 工作得很好。用curl查询url。在http头中使用wsse来检索重要的用户信息。

我想登录我的用户(从S2)使用S1数据库。但是当我在S2, json响应用户的信息后,我不知道我需要做什么,怎么做…

应用端:——Symfony2

API端:——Symfony2——FOSUserBundle——FOSRestBundle- JMS

这是我第一次尝试做一个Rest API,所以可能我不太明白它是如何工作的。

提前感谢。

EDIT:查看更多详细信息。

  • 1:用户1使用登录表单发送。
  • 2: S2创建一个带有x-wsse参数的http头(Nonce/Timestamp/Username/Password…)
  • 3: S2用curl
  • 发送此报头给S1
  • 4: S1检索数据,如果头部有良好的信息,发回用户的信息(json格式)或做一些动作
  • 5: S2从S1中检索用户的json信息。
  • 6:我可以显示页面,就像我想要的用户1

现在我的问题是,我需要为一个新的页面做同样的事情,但我不想问我的用户密码和用户名第二次,因为对他来说,他是登录。

希望更清楚。

编辑2:我的问题在一个句子中恢复。

在Symfony2中,使用wsse身份验证,我如何获得用户的令牌并在API上进行身份验证后将其发送到客户端。

: p

您需要创建一个自定义身份验证。幸运的是,这个Symfony食谱条目将向您展示如何使用WSSE:

http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html

当您从S2应用程序进行身份验证时,S1应用程序返回一个令牌,对吗?

然后你需要做的就是将这个令牌存储在S1应用程序的某个地方(一个实体,redis,…)无论如何),当一个外部应用程序(比如你的S2应用程序)在提供令牌请求的同时请求资源时,你只需要检查令牌是否存在并且有效。

如果是,则可以使用Symfony的安全组件对S1上的用户进行身份验证。

最新更新