谷歌刷新令牌终身

Posted

技术标签:

【中文标题】谷歌刷新令牌终身【英文标题】:Google Refresh Tokens Lifetime 【发布时间】:2019-01-11 17:02:45 【问题描述】:

我一直在四处寻找,但看到了许多相互矛盾的答案。来自 Google 的刷新令牌永远不会因时间过期是否正确?基本上我正在编写一个服务来轮询我自己的帐户,所以我不会遇到

的错误

    用户撤销对服务的访问权限(因为我是用户)

    令牌已经有六个月没有使用了(我将每天轮询和调用 Gmail API)

    用户帐户已超过一定数量的令牌请求。目前每个 Google 用户帐户有 25 个令牌的限制。 (我不确定这意味着什么,但我想如果有人能解释一下,我只会激活 1 个令牌)

【问题讨论】:

【参考方案1】:

你是对的,刷新令牌永远不会过期。第 1 点和第 2 点是正确的,如果您不撤销对该应用程序的访问权限并且您每天都使用它,那么您就不会遇到这些问题。

关于第三个,限制已更改为每个用户 50 个刷新令牌,这意味着您不能为一个用户拥有超过 50 个活动刷新令牌。您可以生成新的,但最旧的刷新令牌将被撤销。请记住这一点,以防您生成新的刷新令牌。

还有另一种情况,如果您更改密码,刷新令牌可能会被撤销。您将需要处理此问题并更新您的刷新令牌。

您可以在此链接上找到更多信息:https://developers.google.com/identity/protocols/OAuth2#expiration

【讨论】:

我很困惑生成新的刷新令牌与刷新新的访问令牌意味着什么?在什么情况下我们会生成一个新的刷新令牌? 在某些情况下,您可能需要存储超过 1 个刷新令牌。想象一下,如果您在同一个应用程序中有不同的服务并且这些服务具有不同的范围,那么您可以为每个服务使用不同的刷新令牌,以生成具有您需要的范围的访问令牌。另一种情况可能是,如果您在应用程序中包含新范围,用户将需要再次接受权限,这将生成一个包含所有请求范围的新刷新令牌。在最后一种情况下,您需要删除旧的刷新令牌并使用新的。

以上是关于谷歌刷新令牌终身的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 SSL 的情况下使用刷新令牌刷新谷歌访问令牌?

NodeJS,如何使用谷歌 api 获取带有刷新令牌的新令牌?

刷新谷歌访问令牌时未授权_客户端

无法在跨客户端谷歌 oauth2.0 中交换访问令牌和刷新令牌的授权码

谷歌帐户的不同身份验证令牌

GoogleDrive 7 天刷新令牌