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

时间:2012-09-23 01:39:24

标签: oauth-2.0 google-drive-api google-authentication

我收到以下

{
  "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)

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

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

任何人都可以确认这个解释,是否有关于如何处理此异常的最佳做法?

1 个答案:

答案 0 :(得分:6)

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

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

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

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

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