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

时间:2017-08-27 20:28:08

标签: oauth oauth-2.0 access-token gsuite

我正致力于"服务集成"连接多个不同账户的平台。

背后的想法是让一个Web App在几个连接的平台上执行自动化操作。 例如:

截止日期到期:

  • 第X频道上的松弛消息
  • Admin X的电子邮件
  • 在Asana上创建新任务

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

我面临两个问题:

  • 我不喜欢'认为这是正确的方法。在我的理解中,必须有一种方法,在用户"授权"到应用程序,在没有"用户令牌的情况下执行所有操作"但使用某种服务器端"令牌(可能有客户ID和秘密)
  • 用户令牌在几小时/几天后过期,并且必须登录到每项服务

这是正确的方法吗?例如,假设我必须提供新的GSUITE / Google帐户。

现在我只使用OAUTH客户端身份验证获取的用户令牌并执行请求。一切都像魅力一样。

如何在服务器端执行相同的操作?从理论上讲,用户授予我的应用程序许可以提供新用户,因此,如果没有"客户端发明"我该怎么办?

1 个答案:

答案 0 :(得分:0)

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

根据您使用的服务,主要有两类" OAuth登录":

  • 单一令牌:登录后,外部服务器为您提供终身有效令牌以访问其信息。如果用户删除了对应用程序

  • 的权限,则令牌将停止工作
  • 续订令牌:登录后,外部服务器会为您提供一个"定时令牌" (通常为一小时)和刷新令牌(始终有效)。与APPID和APPSECRET一起使用的刷新令牌可用于获取新的授权令牌。

实际上,我测试过:

  • GSUITE(续订)
  • Trello(终身有效)
  • Asana(续订)
  • Slack(终身有效)