3

这个问题与authlib python 模块有关:

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

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

这是我的问题:有没有办法OAuth2Session在它过期前 x 秒刷新它的令牌?是否可以添加一个整数属性以OAuth2Session使此持续时间可配置?

4

1 回答 1

3

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

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

请注意,即使访问令牌未过期 - 例如客户端和服务器之间的 5 分钟时钟差异 - 或令牌签名证书已更改,也可能发生 401

这是一些示例代码,以防万一。如果你很幸运,authlib 会为你做这件事——如果不是,那么值得你自己编写代码..

于 2019-11-22T20:17:19.300 回答