android - Android 的客户经理如何使用存储的密码来检索授权 token ?

标签 android accountmanager

我的问题是关于 Android 客户管理器的。我不确定我是否理解以下文档:

http://developer.android.com/reference/android/accounts/AccountManager.html

对于方法: public AccountManagerFuture getAuthToken (Account account, String authTokenType, Bundle options, Activity activity, AccountManagerCallback callback, Handler handler)

它是这样说的:

If a previously generated auth token is cached for this account and type, then it is returned. Otherwise, if a saved password is available, it is sent to the server to generate a new auth token. Otherwise, the user is prompted to enter a password.

我不明白客户经理会如何针对我的帐户类型执行此操作。我的假设是它会调用 AbstractAccountAuthenticator 中定义的方法来执行此操作,但我没有看到任何方法似乎会重新提交已保存的密码。

  1. 澄清一下,我打算将刷新 token 保存为我帐户的“密码”。然后我打算提交刷新 token 来代替存储的密码,以获得新的访问 token 。

  2. 我尝试在 GrepCode 中搜索,但我不习惯那里显示代码的方式,或者代码不是很清楚,因为我仍然不确定客户经理计划如何“重新提交”存储的密码,如果我可以覆盖该行为,那么它只会刷新访问 token 。

感谢任何帮助。我觉得我在这里遗漏了一些非常明显的东西。

最佳答案

覆盖 getAuthToken。在该覆盖中,您将执行上述工作流程。保存密码是可选的。如果您不想保存密码,那么在 getAuthToken 中您只需验证已保存的 token 。如果 token 无效,您将提示登录或仅使用您要求定义的其他机制刷新 token 。

关于android - Android 的客户经理如何使用存储的密码来检索授权 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973328/

相关文章:

android - 如何在 View 下方添加布局

java - 在 android 中实现推荐技术/应用程序邀请的最佳方式?

android - 创建新联系人而不是更新现有联系人

android - 如何从 ASyncTask 调用父 Activity 函数?

android - 如果联系人与电话通讯录中的应用程序相关联,则显示应用程序图标

android - 如何从使用其他应用程序创建的自定义帐户调用 accountManager.getUserData?

java - 如何获取存在于其根 Pojo 中的 List<Pojo1> ,它也作为 List<Pojo> 返回

android - Crosswalk 与 cordova 集成

android - 如何清除ListAdapter中的数据

android - 如何通过单 channel 进行直播