谷歌+授权容错(代码已被兑换)

3
我目前正在Android上实现Google+身份验证以获得离线访问权限。这需要请求一次性授权码,该授权码可以发送到服务器并兑换为刷新令牌。到目前为止,一切都很好。
然而,想象一下,在代码兑换和向用户指示已经通过身份验证之间的时间内,服务器出现错误。如果用户重新请求身份验证代码,则谷歌会返回与先前发出的相同的代码。当服务器尝试使用谷歌兑换此代码时,会返回错误
“无效授权-此代码已被兑换”
是否有一种优雅地从这种情况中恢复的方法,而不需要用户“稍后再试”,等待谷歌决定发出新代码?我意识到获得新代码的等待时间只有5或10分钟,但从用户的角度来看,这仍然不是一个非常好的情况。

我遇到了同样的问题,你找到解决方法了吗?! - Moussawi7
很遗憾,我没有 :/. - Levi Botelho
1个回答

3
你需要使用的是 clearToken(Context context, String token)
如果你收到以下响应:

"Invalid Grant - This code was already redeemed"

你需要将之前使用的认证码传递给 clearToken() 函数。这将从缓存中删除该令牌。
再次调用 getToken(),它将为您提供一个新的认证码,因此您无需等待代码自动刷新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接