这个问题与authlib python模块有关:
我正在使用身份验证OAuth2Session
来触发对 API 的大量请求。我为我的OAuth2Session
提供了一个refresh_token_url
,以便access_token在过期时无缝刷新。
大多数时候,它运行良好,但有时,我会收到 401 响应(令牌已过期(。 我怀疑的是:请求是在客户端触发的,因为令牌尚未过期,但是在服务器端处理此请求时它已过期......
这是我的问题: 有没有办法让OAuth2Session
在令牌过期前 x 秒刷新其令牌? 是否可以向OAuth2Session
添加一个整数属性以使此持续时间可配置?
作为 OAuth 客户端,有一个一般的最佳实践 - 如果你想要最可靠的体验:
- 调用接口
- 如果收到 401,请获取新令牌并重试 API 调用
- 如果仍然收到错误,请向用户显示该错误
请注意,即使访问令牌未过期(例如客户端和服务器之间的 5 分钟时钟差异(或令牌签名证书已更改,也可能发生 401
下面是一些示例代码,以防它有所帮助。如果你很幸运,authlib会为你做这件事 - 如果不是,那么值得自己编码..