Google刷新令牌是否过期?

我在短时间内多次使用刷新令牌进行testing,但是我不知道Google刷新令牌是否过期了? 或者我可以调用相同的刷新令牌来长时间(一个星期甚至几个月)再次获得另一个访问令牌?

Google Auth服务器发出的刷新令牌永不过期 – 这就是刷新令牌的重点。 刷新令牌将在用户撤销对您的应用程序的访问时过期(或者我应该说成为未经授权的)。

参考这个文档,它清楚地说明了刷新令牌的function。

服务器可以发出一个短命的访问令牌和一个长寿命的刷新令牌,而不是发出持久的令牌(通常长达一年或无限的生命周期)。 因此,总之,您可以一次又一次使用刷新令牌,直到授权访问的用户撤消对应用程序的访问。

这是一个非常混乱的线程。 第一个答案似乎是正确的,但实际上并没有引用任何权威的谷歌。

我发现的最确切的答案实际上是在开发者的游乐场,你获得的令牌。 第2步在底部有一个注释说:

“注意:OAuth Playground不存储刷新标记,但作为刷新标记永不过期,如果用户想要手动撤销它们,则应该转到其Google帐户授权访问页面。

https://developers.google.com/oauthplayground/

我不认为这是完全正确的:

请注意,刷新令牌的数量是有限制的, 每个客户端/用户组合一个限制,以及所有客户端上的另一个用户。 您应该将刷新标记保存在长期存储中,并且只要它们保持有效,就继续使用它们。 如果您的应用程序请求太多的刷新令牌,则可能会遇到这些限制,在这种情况下,旧的刷新令牌将停止工作。

从此页面: https : //developers.google.com/youtube/v3/guides/authentication#installed-apps

这是从youTube文档(我发现比其他api文档要好得多),但我认为这是相同的所有谷歌应用程序。

看到这个:

刷新令牌有效,直到用户撤销访问。 该字段仅在授权码请求中包含access_type = offline时才存在。

https://developers.google.com/accounts/docs/OAuth2WebServer

刷新令牌的主要概念是,它是持久的,永不过期。

访问令牌具有到期时间,并到期,一旦到期,我们可以去刷新令牌,这将被反复使用,直到用户从他的帐户撤销。

2017年有些规则已经改变了,所以我认为最好的答案是依赖于产品。 例如,在Gmail API上,密码更改后,Oauth 2.0刷新令牌将过期。 请参阅此https://support.google.com/a/answer/6328616?hl=zh_CN

我们曾经预先设置了API访问权限,并在设置新的gmail用户时生成刷新令牌,然后我们可以对他们的邮件进行归档(法律要求我们这样做),但是现在只要他们更改密码,刷新令牌被撤销。

也许对于YouTube,地图,刷新令牌仍然是真正的长期居住,但对于Gmail的API,指望一个短的令牌。

我已经做了一些进一步的研究,似乎在第一个“离线”请求期间,Google访问令牌用于检索刷新令牌。 从这一点开始,刷新令牌被用来发出一个新的访问令牌。 这个想法是一个访问令牌是一个短期的令牌,但它可以通过一个长期的更新令牌来更新。 这消除了需要请求URL“code”variables的需要,这需要两个端点方法,并且必须使用基于引用的请求来启动:

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

一些像Dropbox这样的REST API服务会发出持久性的访问令牌,但Google发布短期访问令牌。 贝宝使用了一个折衷办法,它允许访问令牌被检索,而不需要URI引用者执行。 这意味着访问令牌可以被检索而无需点击链接来启动stream程。 Google的方法意味着API例程只能在需要使用的基础上调用。 基本上,通过基于引用的程序启动调用。 这是通过发行短期访问令牌或访问令牌来控制的,这些令牌必须在链中刷新。 这要求开发人员更仔细地考虑系统应该如何stream动。