用户忘记了密码,并且(几乎)所有会员网站都需要一种方法来帮助用户重新登录。
我想实现常见的场景:
- 用户访问站点,尝试登录,但无法登录,然后意识到他们忘记了密码——废话!
- 用户输入电子邮件地址并点击“忘记密码”
- 用户收到带有密码重置链接的电子邮件
以下是我打算如何实现它(C#/ASP.NET MVC):
- 当用户输入电子邮件并点击“忘记密码”按钮时,我的网站将生成一个 GUID,将其存储在数据库中的成员实体中
member.ResetToken
(此链接只能使用一次) member.ResetToken
用户单击该链接,我的网站会根据该 url查找他们的帐户。如果找到他们的帐户,请向他们显示密码重置表格,当他们完成重置时,它会member.ResetToken
从他们的帐户中清除密码。
这是我的问题:保持这样(他们可以在现在或将来随时使用该链接重置密码)或添加时间戳以限制他们必须重置密码的时间?
从用户体验的角度来看,在您准备好时重置密码的能力很棒,但我想确保我没有忽略这可能引发的一些安全问题。