我们可以在OAuth2Session刷新令牌过期前几秒使它生效吗?

时间:2019-11-22 16:03:04

标签: python openid-connect authlib

这个问题与authlib python module有关:

我正在使用authlib OAuth2Session来触发对API的大量请求。我为refresh_token_url提供了一个OAuth2Session,以便在过期时无缝刷新access_token。

在大多数情况下,它运行良好,但是有时我会收到401响应(令牌已过期)。 我怀疑的是:由于令牌尚未过期,因此在客户端触发了该请求,但是在服务器端处理此请求时,该令牌已过期...

这是我的问题: 有没有办法让OAuth2Session在令牌失效前几秒钟刷新令牌? 是否可以向OAuth2Session添加一个整数属性以使该持续时间可配置?

1 个答案:

答案 0 :(得分:0)

作为OAuth客户端,通常有一个最佳实践-如果您想要最可靠的体验:

  • 调用API
  • 如果您收到401,请获取新令牌并重试API调用
  • 如果仍然出现错误,则将其显示给用户

请注意,即使访问令牌未过期(例如,客户端与服务器之间的时钟间隔为5分钟)或令牌签名证书已更改,也会出现401

下面是一些示例代码,以防万一:https://github.com/gary-archer/authguidance.mobilesample.android/blob/master/app/src/main/java/com/authguidance/basicmobileapp/plumbing/api/HttpClient.kt

如果幸运的话,authlib可以为您完成此操作-否则,值得自己编写一下..