2011-08-30 69 views

回答

1

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

http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html

-2

你需要调用invalidateAuthToken(String, String)当你知道令牌已过期。即当请求失败并带有验证错误时。

+2

是的,我的问题是什么是最好的方式来找出你的令牌是否过期。 –

1

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

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

未能从谷歌获得该cookie似乎意味着它的时间抢从的AccountManager一个新的令牌。

0

由于目前还没有被接受的答案: 我通过在try块中触发我的请求,然后捕获任何异常并检查它是否为401与if (e.getMessage().equals("401 Unauthorized")) { ... }。 然后,使认证令牌失效,请求一个新的认证令牌并重试该请求。

相关问题