我有一个使用 AccountManager
向 AppEngine 进行身份验证的 Android 应用程序。它已经工作了一年多了。在今天运行一些测试时,我注意到对https://my-app.appspot.com/_ah/login?continue=http://localhost/&auth=...
的响应中缺少 Set-Cookie 标头。因此,我没有 SACSID,因此无法进行身份验证。
在进一步研究该问题后,我意识到这仅在我使用 AppEngine 应用程序管理员帐户时才会发生(此帐户在 2 周前进行身份验证没有问题(。我可以在浏览器中毫无问题地登录,非管理员用户可以使用 AccountManager
的身份验证令牌获取 SACSID。我尝试使身份验证令牌无效并获取新的令牌,但这也不起作用。我还尝试了https和http的所有不同排列,但仍然没有。
有人知道可能导致这种情况的原因吗?
编辑:添加根本没有cookie与响应一起返回。
编辑2:似乎AccountManager.invalidateAuthToken("ah", authToken)
不起作用。在无法获取 SACSID cookie 后,我尝试使令牌失效,假设它已过期。但是,我刚刚检查了一下,下次我请求令牌时会返回相同的令牌。
似乎问题是需要用 "com.google"
作为帐户类型而不是"ah"
调用AccountManager.invalidateAuthToken
。