我正在阅读其他帖子,但无法得到正确答案。所以这就是:
想象一下,我有一个保护后端API的Oauth2服务器实现。我希望我的应用程序像facebook或gmail app一样运行,并希望在他们最初登录后永远保持身份验证(直到他们手动撤销)。永远不应该再问他们的密码。如果不将密码存储在设备上,这是否可行?
是否有刷新令牌来解决这个问题,还是应该以其他方式接近?还有一个安卓库可以解决这个问题,因为我不想重新发明轮子。
答案 0 :(得分:1)
您可以通过AccountManager
为用户保存用户名,密码和令牌,稍后再检索。只需在应用程序打开时检查用户帐户是否存在,即可采取相应措施。
您也可以稍后更新帐户凭据。 下面是一个基本的示例代码段
private static final String TYPE_ACCOUNT = "com.some.package";
public static void addAccount(Context context, String username, String password, String token) {
AccountManager accountManager = AccountManager.get(context);
Account account = new Account(username, TYPE_ACCOUNT);
accountManager.addAccountExplicitly(account, password, null);
accountManager.setAuthToken(account, TYPE_ACCOUNT, token);
}
public static Account getUserAccount(Context context) {
AccountManager accountManager = AccountManager.get(context);
Account account = null;
try {
account = accountManager.getAccountsByType(TYPE_ACCOUNT)[0];
} catch (Exception ignored) {
}
return account;
}