为Android库设置凭据的最佳方式

时间:2015-11-05 06:59:48

标签: android

我们正在开发一个与我们的后端通信的安卓库。该库将分发给我们的客户,允许他们的应用程序将数据发送到我们的服务器。

每个库都应该以安全的方式与客户端凭证(令牌等)进行通信。

哪里是存储该令牌的最佳位置?也许在清单?单个文件夹中的纯文本文件?

我希望尽可能透明。客户应该下载我的库,下载凭证文件,所有应该开始顺利运行。

任何提示?

非常感谢

1 个答案:

答案 0 :(得分:1)

来自官方official documentation

  

处理凭证

     

一般情况下,我们建议尽量减少询问用户的频率   凭证 - 使网络钓鱼攻击更加显着,而且不太可能   要成功。而是使用授权令牌并刷新它。

     

如果可能,用户名和密码不应存储在   设备。而是使用用户名和执行初始身份验证   用户提供的密码,然后使用短命的,   特定于服务的授权令牌。

     

应该可以访问多个应用程序可访问的服务   使用AccountManager访问。如果可能,请使用AccountManager   用于调用基于云的服务并且不存储密码的类   设备。

     

使用AccountManager检索帐户之前,请先创建CREATOR   传递任何凭据,以便您不会无意中通过   凭证到错误的申请。

     

如果凭据仅由您创建的应用程序使用,   然后您可以验证访问AccountManager的应用程序   使用checkSignature()。或者,如果只有一个应用程序   使用凭证,您可以使用KeyStore进行存储。

因此,使用AccountManager似乎是存储凭据的最佳选择。

您也可以使用SharedPreference,但在root手机上有风险,可以访问应用的首选项文件。