2

我对 Oauth 不是很擅长,所以需要一些帮助来实现我的 FreeAgent 会计系统的接口,他们提供了 Oauth 2 API。

我想用标准 Python 编写代码,似乎最好的库是 Rauth。我的问题是刷新令牌。

有没有关于如何使用 python Rauth 库刷新过期令牌的好示例?那么处理到期的最佳实践是什么?我可以尝试使用我的令牌,如果由于过期而出现错误,请请求刷新。或者,也许我可以跟踪令牌的生命周期,以防我的计算表明它已过期,然后再请求另一个。最好将所有这些令牌信息保存在哪里:在配置文件中、在 JSON 对象中、在数据库中……?

谢谢你的帮助。

格雷格

4

1 回答 1

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 没有记录。然而,也许我们应该在文档中记下这种一般模式。

希望有帮助!

于 2013-05-09T14:22:50.527 回答