Google API OAuth2 刷新令牌突然被撤销

Posted

技术标签:

【中文标题】Google API OAuth2 刷新令牌突然被撤销【英文标题】:Google API OAuth2 refresh tokens abruptly revoked 【发布时间】:2021-07-30 19:34:27 【问题描述】:

我一直在使用 Google API 每周更新我的一个 Chrome 插件。这种情况现在已经发生了 3 到 4 次:我获得的刷新令牌最多可以正常工作两周(每周仅使用一次),然后是第三周,返回一个错误,指出我的令牌已过期或撤销。

鉴于我是唯一有权访问这些令牌的用户,我知道没有任何垃圾邮件,而且我知道没有人会被授权撤销我的令牌。

请指教。谢谢!

【问题讨论】:

编写您的应用程序,以便处理重新授权。 【参考方案1】:

访问令牌过期的原因有很多。

    用户撤销了您的访问权限。 根据您使用的范围,如果用户更改密码,它可以撤销所有现有的刷新令牌(我认为主要是 gmail) 如果您的应用程序仍处于测试阶段,刷新令牌仅持续两周,您将需要将您的应用程序移至生产环境并完成验证过程。 (这似乎是一个隐秘的改变,我找不到任何信息) 一个用户帐户最多可以有 50 个未完成的刷新令牌,如果用户多次登录并且您每次都获得一个新的刷新令牌,请确保您始终使用最新的。

您的应用程序应始终设置为在刷新令牌过期时再次请求用户访问。

【讨论】:

#1、2 和 4 在这种情况下绝对不可能 --- #3,但是,我从未听说过,听起来可能正是问题所在。我会做更多的研究,看看我是否能找到更多关于它的信息。谢谢! 如果你找到任何关于它的具体信息,请告诉我。我自己还在做一些测试,但我无法从我的谷歌联系人那里得到任何官方消息。 我无法确认它是否有效,但我认为 (/hope) #3 以上非常有用。我去了开发控制台,我通常在其中使用“凭据”选项卡,然后打开“OAuth 同意屏幕”选项卡。在那里,在“发布状态”标题下,显示我的应用程序正在测试中。所以我只是单击按钮将其移至生产。我非常希望这就是问题所在,假设测试凭据在 2 周后被撤销,因为这正是我所看到的问题。 2-3 周后再回来查看,当我确定时我会尽量记住更新。 所以在一个多月后,我有足够的信心说#3 是原因。在我将应用程序切换到生产环境后,我已经获得的令牌在一两周内就过期了。获得新令牌后,这一次已经投入生产,我还没有任何意外到期。感谢您的提醒!

以上是关于Google API OAuth2 刷新令牌突然被撤销的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Contacts API 3.0 版上使用 oauth2 检索刷新令牌

Google API V 3.0 .Net 库和 Google OAuth2 如何处理刷新令牌

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

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

无法获取 google play 授权的刷新令牌

Google oAuth2 令牌越来越失效