更好地理解 OAuth2 和服务器端信息访问
Better Understanding OAuth2 and Server Side Information Access
我正在开发一个连接多个不同帐户的 "service integration" 平台。
背后的想法是让一个 Web 应用程序在多个连接的平台上执行自动化操作。
例如:
截止日期到期:
- 频道 X 上的松弛消息
- 通过电子邮件向管理员 X 发送消息
- 在 Asana 上创建新任务
实际上一切正常,但我依赖于用户访问令牌。我通过 OAUTH 获得令牌,并使用它来执行我的服务器和其他平台之间的所有调用。
我面临 2 个问题:
- 我认为这不是正确的做法。在我的理解中,必须有一种方法,在用户 "authorization" 到应用程序之后,在没有 "user token" 但使用某种 "server side" 令牌(带有客户端 ID 和密码)的情况下执行所有操作也许)
- 用户令牌在几个小时/几天后过期,他必须登录每项服务
执行此操作的正确方法是什么?例如,假设我必须提供一个新的 GSUITE / Google 帐户。
我现在只是简单的使用OAUTH客户端认证得到的User Token来执行请求。一切都像一个魅力。
我怎样才能在服务器端做同样的事情?从理论上讲,用户授予我的应用程序提供新用户的权限,所以没有 "client-invervention" 我怎么能做到呢?
经过一些阅读和一些实验,我发现了这种方法。
根据您使用的服务,主要有 2 类 "OAuth Login":
Single Token:登录后,外部服务器给你一个终身有效的token,可以访问他的信息。如果用户删除对应用程序的权限,令牌将停止工作
Renew Token:登录后,外部服务器会给你一个"timed token"(通常是一个小时)和一个refresh token(一直有效)。与 APPID 和 APPSECRET 一起使用的刷新令牌可用于获取新的授权令牌。
实际上,我测试了:
- GSUITE(续订)
- Trello(终身有效)
- 体式(更新)
- Slack(终身有效)
我正在开发一个连接多个不同帐户的 "service integration" 平台。
背后的想法是让一个 Web 应用程序在多个连接的平台上执行自动化操作。 例如:
截止日期到期:
- 频道 X 上的松弛消息
- 通过电子邮件向管理员 X 发送消息
- 在 Asana 上创建新任务
实际上一切正常,但我依赖于用户访问令牌。我通过 OAUTH 获得令牌,并使用它来执行我的服务器和其他平台之间的所有调用。
我面临 2 个问题:
- 我认为这不是正确的做法。在我的理解中,必须有一种方法,在用户 "authorization" 到应用程序之后,在没有 "user token" 但使用某种 "server side" 令牌(带有客户端 ID 和密码)的情况下执行所有操作也许)
- 用户令牌在几个小时/几天后过期,他必须登录每项服务
执行此操作的正确方法是什么?例如,假设我必须提供一个新的 GSUITE / Google 帐户。
我现在只是简单的使用OAUTH客户端认证得到的User Token来执行请求。一切都像一个魅力。
我怎样才能在服务器端做同样的事情?从理论上讲,用户授予我的应用程序提供新用户的权限,所以没有 "client-invervention" 我怎么能做到呢?
经过一些阅读和一些实验,我发现了这种方法。
根据您使用的服务,主要有 2 类 "OAuth Login":
Single Token:登录后,外部服务器给你一个终身有效的token,可以访问他的信息。如果用户删除对应用程序的权限,令牌将停止工作
Renew Token:登录后,外部服务器会给你一个"timed token"(通常是一个小时)和一个refresh token(一直有效)。与 APPID 和 APPSECRET 一起使用的刷新令牌可用于获取新的授权令牌。
实际上,我测试了:
- GSUITE(续订)
- Trello(终身有效)
- 体式(更新)
- Slack(终身有效)