我对Oauth的态度不是很强,所以需要一些帮助来实现我的FreeAgent会计系统的接口,它们提供了Oauth 2 API。
我想用标准Python编写代码,看起来最好的库是Rauth。 我的问题是令人耳目一新的令牌。
有没有关于如何使用python Rauth库刷新过期令牌的好样本? 什么是处理到期的最佳做法? 我可以尝试使用我的令牌,如果因过期而出现错误请求刷新。 或者也许我可以跟踪令牌的生命,如果我的计算表明它已经过期,那么请求另一个。 哪里最好保存所有这些令牌信息:在配置文件中,在JSON对象中,到数据库......?
感谢您的帮助。
格雷格
答案 0 :(得分:6)
或许我可以跟踪令牌的生命,如果我的计算结果已经过期,那就请求另一个。
这是我推荐的。在某处保持当前令牌的到期,在您发出请求之前,检查令牌是否已过期。如果有,请使用带有访问令牌方法的刷新令牌来检索新的访问令牌。 refresh_token
方法看起来像这样:
def refresh_token():
if not expired():
return
# OAuth 2.0 example
data = {'client_id':client_id,
'client_secret': client_secret,
'grant_type': 'refresh_token',
'refresh_token': refresh_token}
return service.get_access_token(data=data)
因为确切的流程可能因提供商而略有不同,所以rauth没有记录。也许我们应该在文档中记下这种一般模式。
希望有所帮助!