Google刷新令牌是否过期?
我在短时间内多次使用刷新令牌进行testing,但是我不知道Google刷新令牌是否过期了? 或者我可以调用相同的刷新令牌来长时间(一个星期甚至几个月)再次获得另一个访问令牌?
Google Auth服务器发出的刷新令牌永不过期 – 这就是刷新令牌的重点。 刷新令牌将在用户撤销对您的应用程序的访问时过期(或者我应该说成为未经授权的)。
参考这个文档,它清楚地说明了刷新令牌的function。
服务器可以发出一个短命的访问令牌和一个长寿命的刷新令牌,而不是发出持久的令牌(通常长达一年或无限的生命周期)。 因此,总之,您可以一次又一次使用刷新令牌,直到授权访问的用户撤消对应用程序的访问。
这是一个非常混乱的线程。 第一个答案似乎是正确的,但实际上并没有引用任何权威的谷歌。
我发现的最确切的答案实际上是在开发者的游乐场,你获得的令牌。 第2步在底部有一个注释说:
“注意:OAuth Playground不存储刷新标记,但作为刷新标记永不过期,如果用户想要手动撤销它们,则应该转到其Google帐户授权访问页面。
我不认为这是完全正确的:
请注意,刷新令牌的数量是有限制的, 每个客户端/用户组合一个限制,以及所有客户端上的另一个用户。 您应该将刷新标记保存在长期存储中,并且只要它们保持有效,就继续使用它们。 如果您的应用程序请求太多的刷新令牌,则可能会遇到这些限制,在这种情况下,旧的刷新令牌将停止工作。
从此页面: 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动。
- 如何与C预处理器连接两次,并在“arg ## _ ## MACRO”中展开macros?
- 无法从Facebook获取访问令牌。 有一个OAuthException说:“错误validationvalidation码”
- 获取刷新令牌谷歌API
- 警告:在API开发的情况下,无法validationCSRF令牌的真实性
- 视觉工作室中的令牌:HACK,TODO …任何其他?
- validation从移动(iPhone)应用程序到ASP.Net Web API的请求(请在我的devise中提供反馈)
- Devise中的Token Authenticatable模块
- 包含令牌参数的https URL:它有多安全?
- Jenkins用户身份validation细节如何被“传递”给使用Jenkins API创build作业的脚本?