首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AccountManager和OAuth -如何添加帐户?

AccountManager和OAuth -如何添加帐户?
EN

Stack Overflow用户
提问于 2011-04-02 20:36:58
回答 1查看 1.6K关注 0票数 3

我的应用程序与服务器连接,服务器使用OAuth授权。我应该如何将这样的帐户储存在帐户经理?如果我有登录和传递,它可以如下所示:

代码语言:javascript
复制
        Account account = new Account("user1", context.getString(R.string.ACCOUNT_TYPE));
        AccountManager am = AccountManager.get(context);
        if (am.addAccountExplicitly(account, "pass1", null)) {
            result = new Bundle();
            Log.i(TAG, "account: "+account.name+", "+account.type);
            result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
            result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
            activity.setAccountAuthenticatorResult(result);

但是,在OAuth帐户的情况下,应该传递什么而不是用户名呢?我该把奥斯秘密藏在哪里?OAuth令牌应该存储在KEY_AUTHTOKEN中吗?

EN

回答 1

Stack Overflow用户

发布于 2012-11-07 18:36:11

不要使用您可以setAuthToken的密码,而是将OAuth令牌放在那里:

理解AccountManager不是加密服务或密钥链是很重要的。它以纯文本存储帐户凭据,就像您传递它们时一样。在大多数设备上,这不是一个特别的问题,因为它将它们存储在一个只有root用户才能访问的数据库中。但在一个根深蒂固的设备上,任何拥有亚行访问权限的人都可以读到证书。

考虑到这一点,您不应该将用户的实际密码传递给AccountManager.addAccountExplicitly()。相反,您应该存储一个对攻击者使用有限的加密安全令牌。如果您的用户凭据是保护有价值的东西,您应该仔细考虑做一些类似的事情。

  • http://developer.android.com/training/id-auth/custom_auth.html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5525705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档