我可以使用从google api获得的刷新令牌多少次

时间:2013-09-16 22:35:56

标签: ruby-on-rails google-api oauth-2.0 google-oauth

我开发了一个rails应用程序,允许用户使用他们的谷歌帐户登录,然后应用程序提取电子邮件并解析它们以获取信息。

所有这一切都运行良好,但我遇到访问令牌失效的问题,因此我一直在寻找刷新令牌。我找到了一些代码: https://stackoverflow.com/a/14491560/718087

使用此代码,我可以获得一个有效的新访问令牌。但我有几个问题:

  1. 我第一次使用相同的刷新令牌多少次?或者,每次获得新的访问令牌时,是否还需要更新刷新令牌?注意:应用程序已设置为脱机访问。

  2. 我是否需要在令牌过期之前刷新令牌,否则在旧的访问令牌过期后它仍会返回给我一个有效的令牌?这将允许我决定何时刷新令牌的方法 - a:在获取电子邮件之前,b:在令牌到期之前通过延迟的工作或其他东西自动(这会增加相当大的开销)

  3. 我已经浏览了api文档,但找不到我这些具体问题的答案。请原谅我过于详细的询问。

    谢谢, 阿迪亚

2 个答案:

答案 0 :(得分:3)

刷新令牌永不过期,除非用户撤销。您应该安全永久地存储它。你绝对应该一遍又一遍地获得新的刷新令牌,因为每个用户/应用程序组合只能理解一定数量,最终旧版本将停止工作。

答案 1 :(得分:0)

回答你的问题:“我是否需要在令牌过期之前刷新令牌,否则在旧的访问令牌过期后它仍会返回给我一个有效的令牌?”

我有一个rails应用程序,我检查过期和&刷新令牌存在:

if client.authorization.expired? && client.authorization.refresh_token
 #then I refresh here...

所以答案是,是的,您可以(也可能应该)等到访问令牌过期,然后刷新它。