【发布时间】:2011-07-05 17:22:48
【问题描述】:
我可以使用 Android AccountManager 使用以下代码登录:
http://code.google.com/p/google-api-java-client/wiki/AndroidAccountManager
但我不知道如何退出?
【问题讨论】:
标签: android login logout google-api-java-client
我可以使用 Android AccountManager 使用以下代码登录:
http://code.google.com/p/google-api-java-client/wiki/AndroidAccountManager
但我不知道如何退出?
【问题讨论】:
标签: android login logout google-api-java-client
来自 AccountManager:
忘记保存的密码。这将删除密码的本地副本; 它不会更改用户在服务器上的帐户密码。有 与
setPassword(account, null)的效果相同,但需要更少 权限,并且可以由应用程序或管理接口使用 从帐户中“退出”。
【讨论】:
为什么不通过调用使您当前的身份验证令牌无效
AccountManager.getInstance().invalidateAuthToken(accountType, currentToken);
【讨论】:
你没有。当您使用内置的 android 身份验证时,您使用用户在“Accounts and Sync”控制面板中提供的用户名和密码进行身份验证。获得该身份验证后,您可以使用它来获取一个身份验证令牌,您应该缓存并使用它,直到它变坏为止。
那么,让我们来看看您使用“com.google”样式帐户访问 google 服务的方式。当您的应用程序想要同步时,您最终将使用 AccountManager 进行身份验证(您绝对应该使用 SyncAdapter 来执行此操作)。进行身份验证后,您将获得一个 auth-token。这是一大串随机字母,在随后的网络调用中充当“密钥”。您将保存它,只要它是好的,您就不需要再次进行身份验证。所以,想去取...比如说,一个谷歌金融投资组合。您将 auth-token 包含在 http get 标头中。发生以下两种情况之一:
后一种情况会发生有两个原因:
无论如何,您永远不会退出。您只需将服务与您获得并缓存的身份验证令牌一起使用,直到不再使用为止。将您获得的身份验证令牌想象成一个会话密钥,只要您使用它,它就会一直保持良好状态。
【讨论】: