处理过期的身份验证令牌android帐户管理器

处理过期的身份验证令牌android帐户管理器,android,authentication,Android,Authentication,每次我需要从AccountManager使用Google auth令牌发出请求时,我是否应该使新令牌失效并请求新令牌,或者是否有“expired at”(过期时间)时间戳,我可以使用它来查看它是否仍然有效。Google服务的HTTP响应中没有提供过期时间,因此,我认为您需要确保,如果auth令牌无法提供访问,您可以使用它作为触发器来获取新的auth令牌。或者,您可以在每次应用程序启动时获取一个新令牌,或者创建自己的超时 当您知道令牌已过期时,需要拨打电话。i、 e.当请求失败并出现身份验证错误时

每次我需要从
AccountManager
使用Google auth令牌发出请求时,我是否应该使新令牌失效并请求新令牌,或者是否有“expired at”(过期时间)时间戳,我可以使用它来查看它是否仍然有效。

Google服务的HTTP响应中没有提供过期时间,因此,我认为您需要确保,如果auth令牌无法提供访问,您可以使用它作为触发器来获取新的auth令牌。或者,您可以在每次应用程序启动时获取一个新令牌,或者创建自己的超时


当您知道令牌已过期时,需要拨打电话。i、 e.当请求失败并出现身份验证错误时

查看HTTP响应,状态代码为302(它将重定向您以提供身份验证令牌),并且标头中的“设置Cookie”字段不存在。你可以把钥匙关上

if (res.getStatusLine().getStatusCode() == 302 && res.getHeaders("Set-Cookie").length == 0) {
    // we need a new token
    // invalidate account manager logic here
}

未能从谷歌获得cookie似乎意味着是时候从AccountManager获取新的令牌了。

因为目前还没有公认的答案: 我通过在一个try块中触发我的请求,然后捕获任何异常,并检查它是否是一个带有
if(e.getMessage().equals(“401 Unauthorized”){…}
的401。
然后,使身份验证令牌无效,请求一个新的身份验证令牌,然后重试该请求。

是的,我的问题更多的是,什么是查明您的令牌是否过期的最佳方法。