如果我想存储要在 Android 应用程序中使用的用户名和密码,最好的方法是什么?是通过首选项屏幕(但如果用户错过了这个怎么办?),还是弹出一个对话框并要求用户提供凭据?如果是这样,我必须维护应用程序的状态。我该怎么做?
我见过的大多数 Android 和 iPhone 应用程序都使用初始屏幕或对话框来询问凭据。我认为用户必须经常重新输入他们的姓名/密码很麻烦,因此从可用性的角度来看,存储这些信息是有意义的。
(Android 开发指南)的建议是:
一般来说,我们建议尽量减少询问用户凭据的频率——以使网络钓鱼攻击更加明显,并且不太可能成功。而是使用授权令牌并刷新它。 在可能的情况下,用户名和密码不应存储在设备上。相反,使用用户提供的用户名和密码执行初始身份验证,然后使用短期的、特定于服务的授权令牌。
一般来说,我们建议尽量减少询问用户凭据的频率——以使网络钓鱼攻击更加明显,并且不太可能成功。而是使用授权令牌并刷新它。
在可能的情况下,用户名和密码不应存储在设备上。相反,使用用户提供的用户名和密码执行初始身份验证,然后使用短期的、特定于服务的授权令牌。
使用AccountManger是存储凭据的最佳选择。SampleSyncAdapter提供了如何使用它的示例。
如果由于某种原因这不是您的选择,您可以使用Preferences机制回退到持久化凭据。其他应用程序将无法访问您的首选项,因此用户的信息不会轻易暴露。