Android AccountManager看似不会使令牌失效

时间:2013-10-01 10:08:35

标签: android google-app-engine authentication google-authentication android-account

我有一个使用AccountManager向AppEngine验证的Android应用。它已经工作了一年多了。在今天运行一些测试时,我注意到对https://my-app.appspot.com/_ah/login?continue=http://localhost/&auth=...的响应中缺少Set-Cookie标头。因此,我没有SACSID,因此无法进行身份验证。

在进一步研究这个问题之后,我意识到只有在我使用AppEngine应用程序管理员帐户时才会发生这种情况(这个帐户在2周前验证时没有问题)。我可以在浏览器中毫无问题地登录,非管理员用户可以使用AccountManager中的身份验证令牌获取SACSID。我已经尝试使auth令牌无效并获得一个新令牌,但这也无效。我也为https和http尝试了所有不同的排列,但仍然没有。

任何人都知道可能导致这种情况的原因是什么?

编辑:添加根本没有回复任何Cookie。

编辑2:似乎AccountManager.invalidateAuthToken("ah", authToken)无效。在未能获得SACSID cookie之后,我尝试使该令牌无效,假设它已过期。但是,我刚检查过,下次请求时会返回相同的令牌。

1 个答案:

答案 0 :(得分:0)

似乎问题是AccountManager.invalidateAuthToken需要使用"com.google"来调用,因为帐户类型不是"ah"