0

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

所有这些工作正常,但我面临访问令牌无效的问题,因此我一直在研究刷新令牌。我在以下位置找到了一些代码: https ://stackoverflow.com/a/14491560/718087

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

  1. 我可以使用第一次获得的相同刷新令牌多少次?还是每次获得新的访问令牌时也需要更新刷新令牌?注意:应用程序设置为离线访问。

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

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

谢谢,阿迪亚

4

2 回答 2

3

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

于 2013-09-17T01:05:59.800 回答
0

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

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

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

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

于 2013-09-17T20:46:19.580 回答