我开发了一个rails应用程序,允许用户使用他们的谷歌帐户登录,然后应用程序提取电子邮件并解析它们以获取信息。
所有这一切都运行良好,但我遇到访问令牌失效的问题,因此我一直在寻找刷新令牌。我找到了一些代码: https://stackoverflow.com/a/14491560/718087
使用此代码,我可以获得一个有效的新访问令牌。但我有几个问题:
我第一次使用相同的刷新令牌多少次?或者,每次获得新的访问令牌时,是否还需要更新刷新令牌?注意:应用程序已设置为脱机访问。
我是否需要在令牌过期之前刷新令牌,否则在旧的访问令牌过期后它仍会返回给我一个有效的令牌?这将允许我决定何时刷新令牌的方法 - a:在获取电子邮件之前,b:在令牌到期之前通过延迟的工作或其他东西自动(这会增加相当大的开销)
我已经浏览了api文档,但找不到我这些具体问题的答案。请原谅我过于详细的询问。
谢谢, 阿迪亚
答案 0 :(得分:3)
刷新令牌永不过期,除非用户撤销。您应该安全永久地存储它。你绝对应该不一遍又一遍地获得新的刷新令牌,因为每个用户/应用程序组合只能理解一定数量,最终旧版本将停止工作。
答案 1 :(得分:0)
回答你的问题:“我是否需要在令牌过期之前刷新令牌,否则在旧的访问令牌过期后它仍会返回给我一个有效的令牌?”
我有一个rails应用程序,我检查过期和&刷新令牌存在:
if client.authorization.expired? && client.authorization.refresh_token
#then I refresh here...
所以答案是,是的,您可以(也可能应该)等到访问令牌过期,然后刷新它。