Oauth2:使access_token保持最新状态的最佳做法?

时间:2019-02-16 04:41:30

标签: oauth-2.0

我正在创建一个与多个第三方Oauth2提供程序集成的应用程序(请考虑使用Zapier)。用户通过Oauth2添加了一个连接,该连接为我提供了刷新令牌和访问令牌,并将其存储在数据库中。

什么是使访问令牌保持最新的最佳实践?我是否应该运行一个异步作业(例如cron),以每30分钟刷新一次针对每个连接的访问​​令牌?如果用户有几天没有使用我的应用程序,我希望仍然能够在不经过Oauth2同意的情况下访问他的第三方数据。

1 个答案:

答案 0 :(得分:1)

  

什么是使访问令牌保持最新的最佳实践?我是否应该运行一个异步作业(例如cron),以便为每个连接每30分钟刷新一次访问令牌?

不一定。等到您的API调用失败。检查是否有正确的响应,例如“ 401未经授权”,这表明您的访问令牌已失效/过期。一旦发生这种情况,请使用刷新令牌续订访问令牌。如果刷新令牌失败,则必须再次回退并要求用户再次登录。

刷新令牌的寿命可能会有所不同。可能需要几天到几个月。例如,检查Google的说明中提到了long lived refresh tokens and possible expiry of them。还要检查Azure AD如何提及与token lifetimes相关的配置。

因此,几天内不使用应用程序的用户(例如:离开应用程序并在周末后返回)可以通过适当的令牌生存期有效性配置来处理。但是请注意,长期存在的不受管理的令牌可能会造成威胁(例如:-由于令牌窃取)。