0

我正在开发一个连接多个不同帐户的“服务集成”平台。

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

到期日到期:

  • 频道 X 上的 Slack 消息
  • 通过 Admin X 的电子邮件发送消息
  • 在 Asana 上创建新任务

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

我面临两个问题:

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

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

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

我怎样才能在服务器端做同样的事情?从理论上讲,用户授予我的应用程序提供新用户的权限,那么如果没有“客户干预”,我该如何做到这一点?

4

1 回答 1

0

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

根据您使用的服务,“OAuth 登录”主要有 2 类:

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

  • 更新令牌:登录后,外部服务器给你一个“定时令牌”(通常是一小时)和一个刷新令牌(始终有效)。与 APPID 和 APPSECRET 一起使用的刷新令牌可用于获取新的授权令牌。

实际上,我测试过:

  • GSUITE(续订)
  • Trello(终身有效)
  • 体式(更新)
  • Slack(终身有效)
于 2017-08-30T08:23:35.473 回答