Google API OAuth2 刷新令牌突然撤销

Google API OAuth2 refresh tokens abruptly revoked

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

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

请指教。谢谢!

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

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

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

我最近使用了 Google 广告 API 和购物内容 API 并体验了 API 身份验证机制的详细行为。

关于身份验证,我可以确定的是:

  • 一个Access-Token的生命周期总是60分钟。然后过期
  • 一个refresh-Token可以更容易地获得一个新的Access-Token,因为 无需额外验证
  • Refresh-Token 的生命周期各不相同
    • 可以是6个月或更长时间(相关申请发布状态发布时)
    • 或仅1周(当相关应用程序发布状态为测试时)

您可以在 Google API 文档 https://developers.google.com/identity/protocols/oauth2#expiration

上找到有关令牌过期的详细信息

还有关于您的 API 申请发布状态的信息 Token has expired or revoked - Google Ads