更好地理解 OAuth2 和服务器端信息访问

Better Understanding OAuth2 and Server Side Information Access

我正在开发一个连接多个不同帐户的 "service integration" 平台。

背后的想法是让一个 Web 应用程序在多个连接的平台上执行自动化操作。 例如:

截止日期到期:

实际上一切正常,但我依赖于用户访问令牌。我通过 OAUTH 获得令牌,并使用它来执行我的服务器和其他平台之间的所有调用。

我面临 2 个问题:

执行此操作的正确方法是什么?例如,假设我必须提供一个新的 GSUITE / Google 帐户。

我现在只是简单的使用OAUTH客户端认证得到的User Token来执行请求。一切都像一个魅力。

我怎样才能在服务器端做同样的事情?从理论上讲,用户授予我的应用程序提供新用户的权限,所以没有 "client-invervention" 我怎么能做到呢?

经过一些阅读和一些实验,我发现了这种方法。

根据您使用的服务,主要有 2 类 "OAuth Login":

  • Single Token:登录后,外部服务器给你一个终身有效的token,可以访问他的信息。如果用户删除对应用程序的权限,令牌将停止工作

  • Renew Token:登录后,外部服务器会给你一个"timed token"(通常是一个小时)和一个refresh token(一直有效)。与 APPID 和 APPSECRET 一起使用的刷新令牌可用于获取新的授权令牌。

实际上,我测试了:

  • GSUITE(续订)
  • Trello(终身有效)
  • 体式(更新)
  • Slack(终身有效)