Leg*_*end 174 authentication storage android credentials
如果我想存储要在Android应用程序中使用的用户名和密码,那么最好的方法是什么?是通过首选项屏幕(但如果用户错过了该怎么办?),或弹出一个对话框并询问用户凭据?如果是这样,我必须维护应用程序的状态.我该怎么做?
Eri*_*ine 113
我见过的大多数Android和iPhone应用都使用初始屏幕或对话框来询问凭据.我认为用户必须经常重新输入他们的名字/密码是很麻烦的,因此从可用性角度来看,存储这些信息是有意义的.
(Android开发指南)的建议是:
通常,我们建议尽量减少要求用户凭据的频率 - 使网络钓鱼攻击更加显着,并且不太可能成功.而是使用授权令牌并刷新它.
如果可能,用户名和密码不应存储在设备上.而是使用用户提供的用户名和密码执行初始身份验证,然后使用短期服务特定的授权令牌.
使用AccountManger是存储凭据的最佳选择.该SampleSyncAdapter提供了如何使用它的一个例子.
如果由于某种原因这不是您的选项,您可以使用" 首选项"机制回退到持久凭据.其他应用程序将无法访问您的首选项,因此不容易公开用户的信息.
您应该使用Android AccountManager.它是专为此方案而构建的.这有点麻烦,但如果SIM卡发生变化,它所做的一件事就是使本地凭证失效,所以如果有人刷你的手机并在其中抛出一个新的SIM卡,你的凭证就不会受到损害.
这也为用户提供了一种快速简便的方法,可以从一个位置访问(并可能删除)他们在设备上拥有的任何帐户的存储凭据.
SampleSyncAdapter(如提到的@Miguel)是一个使用存储帐户凭据的示例.
小智 8
我想,以确保您的证书最好的办法是首先考虑用存储在account.db文件加密可能无法在非root权限的设备和根设备的情况下,容易获得密码的黑客必须需要的密钥解密它.
其他选项是像Gmail一样执行所有身份验证.首次使用Gmail服务器进行身份验证后.你有密码时使用的Auth令牌.该令牌将以纯文本格式存储.如果您从服务器更改密码,则此令牌可能为false.
最后一个选项我建议您启用双因素身份验证并为您的设备创建设备专用密码.丢失设备后,您只需要禁用该设备.
| 归档时间: |
|
| 查看次数: |
198913 次 |
| 最近记录: |