考虑使用 OpenIdConnect 的应用程序。移动设备在其末端存储访问令牌。我的问题是关于更改密码屏幕。我们应该在设备上拥有有效的访问令牌:
1)要求用户输入他当前的密码和新密码的两倍
或
2)我们只需要输入两次新密码。
我知道这取决于应用程序和客户端的要求,但如果您正在为自己构建一个应用程序,您将采取什么方法?
答案 0 :(得分:2)
从一般安全实践来看,我还需要输入旧密码。这增加了一层保护,确认用户确实是帐户的所有者,而不是在应用程序打开时抓住手机的人(例如他们的孩子,他们的朋友等)。
编辑:我忘了添加这个,但是这种方法应该有一种备份方式来更改密码,提供类似的身份验证方法,例如他们在创建帐户时提供的电子邮件。这样,如果用户忘记了旧密码并想要更改密码,他们就可以使用他们的电子邮件来验证密码。将令牌(随机生成的数字/字母)发送到其帐户中的地址,然后要求该令牌更改其密码,前提是他们在时间限制内输入密码*。在他们输入令牌后,只允许他们更改密码,而不是查看他们的旧密码或要求他们输入旧密码。*请注意,令牌应该足够长(~10个字符),并且输入它的时间段相对较短(约10分钟) - 这使得难以强制执行帐户。
答案 1 :(得分:0)
如果可能,您可以使用此方法
如果要输入当前密码和新密码,那么当用户首次登录到应用程序时,您必须在共享首选项或数据库中保存用户名和密码(通常我使用共享首选项)在android和IOS各自的方法(我对ios并不多,我认为它在ios中的UserDetails)。每次你可以在Splash Screen的后台使用这些细节登录,你就可以进行一次登录应用程序 更改密码屏幕,您可以提供当前和新密码,您可以使用存储在共享首选项中的密码验证旧密码,如果它们是相同的更改密码API到服务器。然后成功更改密码,也可以在共享首选项中更改密码。
如果您不想存储密码,则可以直接提供新密码并重新输入新密码,
最好问一下旧密码。
希望它可以帮到你
答案 2 :(得分:0)