关于google API中访问令牌和刷新令牌的问题

Posted

技术标签:

【中文标题】关于google API中访问令牌和刷新令牌的问题【英文标题】:Question about access token and refresh token in google API 【发布时间】:2020-09-06 10:55:36 【问题描述】:

目前,我正在使用 OAuth 2.0 访问 Google API。我得到了访问令牌和刷新令牌,使用访问令牌连接到 Google。因为访问令牌只持续 1 小时,所以我必须使用刷新令牌来获取新的访问令牌。但是,阅读文档:

There is currently a limit of 50 refresh tokens per user account per client.

这是否意味着我的刷新令牌只能使用 50 次,或者我可以拥有 50 个不同的刷新令牌(我会认为是请求新授权)。我的英语不是那么好,所以很抱歉问这个问题。

【问题讨论】:

【参考方案1】:

当用户对您的应用程序进行身份验证时,您将获得一个访问令牌和一个刷新令牌。如果用户随后再次验证您的应用程序,您将获得一个新的访问令牌和刷新令牌。两者都会起作用。这将持续最多 50 次,到第一个将过期。

所以

目前每个客户端每个用户帐户的刷新令牌限制为 50 个。

实际上意味着您的应用程序(客户端)每个用户帐户可以有 50 个工作刷新令牌。

这就是为什么如果您要存储刷新令牌,您应该在每次用户验证您的应用程序时更新它,以确保您拥有最新的令牌。或者更好的是,如果您已经为他们提供了刷新令牌,则停止要求用户对应用程序进行身份验证,但这并不总是可能的。

刷新令牌可以尽可能频繁地使用它们不会过期,除非它们没有使用一段时间(我认为是六个月)或者用户通过谷歌帐户删除了您的访问权限。

【讨论】:

以上是关于关于google API中访问令牌和刷新令牌的问题的主要内容,如果未能解决你的问题,请参考以下文章

访问令牌 Google API 的刷新令牌:R 代码

(JAVA) Google API 分析 - 无法使用“刷新令牌”获取新的“访问令牌”

使用 OAuth 刷新令牌获取新的访问令牌 - Google API

如何从 Google Calendar API 获取刷新的令牌

Google Analytics:从刷新令牌中获取访问令牌

Rails Google Client API - 无法用刷新令牌交换访问令牌