1

我们的 OAuth 服务器将与处理实际受保护资源的服务器分开,本质上位于几个不同系统的中间,每个系统都拥有受保护的资源。

例如,登录页面将位于其中一个系统中。

当一个系统中的经过身份验证的用户转到另一个系统时应该是什么程序?既然它已经过身份验证,它应该只是通过,但在这种情况下 OAuth 做了什么,并要求什么?

谢谢

4

1 回答 1

1

OAuth 没有明确说明这种情况。但从 API 设计的角度来看,我会:

  • 拥有一个 API 端点,其中包含路径中指定的不同服务。比如http://api.example.com/service1http://api.example.com/service2
  • 让那个端点在后台处理 OAuth 和查询单独的服务。

如果你想拥有透明的“独立系统”,http://service1.example.comhttp://service2.example.com可以。但请确保拥有一个域来处理整个 OAuth 流程,并且每个 API 端点都能够处理 OAuth 请求并有权访问必要的用户和令牌数据库来验证请求。

举个例子,你可以:

  1. 接收到 的 OAuth 请求http://service1.example.com
  2. 如果service1可以访问用户和令牌数据库,您可以立即验证请求。
  3. 或者,您可以将请求转发到您的 OAuth 服务进行验证。
  4. 并继续提供响应

或者我的替代方案(我认为更好):

  1. 拥有一个处理 OAuth 的 API 端点
  2. 并在验证后在后台调用不同的服务。
于 2013-04-16T06:34:06.147 回答