我目前正在开发一个允许用户使用密码登录的c#web应用程序。我需要包含的功能是忘记密码功能。什么是忘记密码过程的最佳做法?
什么是忘记密码的推荐流程?
我正在考虑这个:
- 用户点击忘记密码,请输入电子邮件地址
- 电子邮件发送
- 点击链接的电子邮件(链接只有一次有效时间内)
- 采取并要求输入新的密码(他们是否也应答安全问题?)
- 密码更改,邮件发送给此类用户
- 用户现在可以用新密码登录
我目前正在开发一个允许用户使用密码登录的c#web应用程序。我需要包含的功能是忘记密码功能。什么是忘记密码过程的最佳做法?
什么是忘记密码的推荐流程?
我正在考虑这个:
你的点子看起来坚实,但我想补充一些其他方面的考虑:
我们有两种方法来检索忘记密码: 1.通过注册电子邮件ID 2.通过注册的手机号码
注册的电子邮件ID:
一个。要求用户提供注册邮箱编号
b。系统检查提供的电子邮件ID是否在数据库中可用
c。如果电子邮件ID在数据库中存在,系统将发送电子邮件以重置密码,但如果电子邮件ID不在数据库中,则系统会显示警报消息。 d)。用户必须在重置忘记密码的同时提供强密码。
e。密码重置成功,并且相对于电子邮件ID也在数据库中发生更改。
注册手机号码:
的过程与电子邮件,但是在这种情况下几乎相同,OTP将在注册手机号码发送。 我们需要整合第三方SDK,或者我们可以在IOS中使用imessage。
这些都是很好的观点,只有在x登录失败后锁定账户的观点值得商榷。我永远不会锁定一个帐户,因为登录不良,只会延迟下一次可能的登录来阻止暴力强制。用垃圾邮件向用户发送垃圾邮件也不成问题,使用匿名电子邮件帐户的普通电子邮件将垃圾邮件发送给他是很容易的。 – martinstoeckli