通用OAuth客户端集成

时间:2016-10-06 17:08:37

标签: oauth oauth-2.0 google-oauth

我有一个产品可以调用多个第三方休息api来获取某些数据。 有多个供应商API需要oAuth支持。他们可以授予我帐户和客户访问他们的api的权限,但我的服务需要使用这些帐户及其CI生成令牌。

如何构建通用框架以支持多个供应商CI。 我认为这有点复杂,因为一些供应商使用oAuth1,有些使用oAuth 2 .. 有没有现成的解决方案? 如何处理令牌刷新?

例如:

一个供应商可以使用谷歌CI进行谷歌搜索 其他供应商可以使用他们的CI进行Facebook。

1 个答案:

答案 0 :(得分:0)

Facebook和Google之间的工作流程基本相同,因此后端(以及前端,某种程度上 )绝对可以通用的方式设计:

  • 为实际的客户端应用程序设置客户端ID (因此为Authorized JavaScript origins),而不是为后端设置客户端ID
  • 将每个客户端与每个OAuth提供程序集成
  • 通过公共抽象模型发送数据(提供者令牌)后端/ API
  • 验证服务器端的令牌(对于每个提供商,这样做的方式不同,但您可以使用IProviderAuthValidator和几个实现)
  • 创建帐户/登录等

因此,唯一的特殊位应该是这两个:   - 获取提供者令牌客户端   - 验证所述令牌服务器端