我得到了以下内容
{
"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实例中,(即不是在开发服务器上),而且它只发生在我用于在开发和生产上测试的电子邮件地址。
我的工作假设是,这与用户在开发服务器上被授予刷新令牌有关,该刷新令牌以某种方式干扰了prod服务器上存储的刷新令牌。
有人能证实这一解释吗?有没有关于如何处理这种异常的最佳实践?
发布于 2012-09-24 15:16:06
目前,只有最近25个由谷歌授予的刷新令牌有效。我们基本上保留了一个大小为25的队列,其中包含所生成的刷新令牌。
这意味着,在您的测试帐户上,如果您碰巧生成了超过25个刷新令牌,则较旧的令牌将开始被撤销。
也许这就是这里正在发生的事情,所以我想指出这一点,可能是您使用测试帐户在开发服务器上生成了超过25个刷新令牌,而prod中的令牌被删除(因为有25个更新的令牌)。
这是我们的身份验证服务器没有记录的内容,因此请注意,它随时都可能发生变化。
通常,当此异常发生时,您需要让用户经历一个新的OAuth 2.0流,以便获得一个新的刷新令牌。
https://stackoverflow.com/questions/12549088
复制相似问题