Google+ Auth容错(代码已兑换)

时间:2015-03-22 09:43:07

标签: android authentication oauth google-plus fault-tolerance

我目前正在Android上通过离线访问实施Google+身份验证。这需要请求一次性授权代码,该代码可以发送到服务器并兑换成刷新令牌。到目前为止一切都很好。

但是,假设在代码被兑换的时间和向用户发送响应的时间之间服务器上存在错误,表明它们已经过身份验证。如果用户随后重新请求验证码,Google将返回与之前发布的相同的验证码。当服务器尝试使用Google兑换此代码时,错误

  

“无效授权 - 此代码已兑换”

返回。

当Google决定发布新代码时,有没有办法从这种情况中优雅地恢复,而不需要用户“稍后再试”?我意识到获得新代码的等待时间只有5或10分钟,但从用户的角度来看,这仍然不是一个非常好的情况。

1 个答案:

答案 0 :(得分:3)

您需要使用的是clearToken(Context context, String token)

如果收到回复:

  

"无效授权 - 此代码已兑换为"

您需要将您使用的身份验证代码传递给clearToken()函数。这将从缓存中删除该令牌。

再次调用getToken(),它会为您提供一个新的身份验证代码,因此您不必等到代码自行刷新。