导致间歇性无效授权的原因

pin*_*yid 1 google-authentication oauth-2.0 google-drive-api

我得到以下内容

{
  "error" : "invalid_grant"
}
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:103)
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303)
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:130)
Run Code Online (Sandbox Code Playgroud)

这只发生在我的生产Appengine实例中(即不在开发服务器上),它只发生在我用于开发和生产测试的电子邮件地址上.

我的工作假设是,它与在dev服务器上被授予刷新令牌的用户有关,这会以某种方式干扰prod服务器上存储的刷新令牌.

任何人都可以确认这个解释,并且有关于如何处理此异常的最佳实践吗?

Nic*_*ier 6

目前只有Google工作的最后25个刷新令牌.我们基本上保留了生成的刷新令牌大小为25的队列.

这意味着在您的测试帐户中,如果您碰巧生成了超过25个刷新令牌,则旧版本将开始被撤销.

也许这就是这里发生的事情,所以我想指出这一点,可能是你在你的开发服务器上用你的测试帐户生成了超过25个刷新令牌,并且prod中的令牌被删除了(因为有25个更新的令牌) ).

这是我们的身份验证服务器没有记录的内容,因此请注意它可能随时更改.

通常,当发生此异常时,您需要让用户通过新的OAuth 2.0流程以获取新的刷新令牌.