我们正在设置一项功能,使用户能够在无法访问其帐户时重置密码。我们要求他们提供电子邮件地址(他们用于登录网站),向他们发送一封带有唯一链接的电子邮件。
问题是:
- 链接应该在第一次点击时过期,还是应该在第一次使用时过期(即他们成功重置密码)?
- 链接是否应该具有 24 小时有效期(或类似的东西)?
- 用户单击该链接后是否应该登录?
我们正在设置一项功能,使用户能够在无法访问其帐户时重置密码。我们要求他们提供电子邮件地址(他们用于登录网站),向他们发送一封带有唯一链接的电子邮件。
问题是:
更改密码后链接应过期。如果您在第一次单击时使链接过期,这可能会导致问题。假设我的互联网连接不好,并且页面没有完全加载到我的浏览器中。我重新加载页面,它说链接已过期。我不会很高兴用户看到这一点。
是的,您应该将链接限制在某个合理的时间。24小时看起来很合理。如果你不限制链接的生命周期,首先你必须永远存储生成的id,其次你保持这个链接活动的时间越长,链接被攻击者窃取的可能性就越大,从而导致账户被盗。
只有在用户更改他/她的密码后,您才应该让用户进入。如果您只是让他们登录,他们可能会决定不再需要更改密码。这样他们就可以永远登录系统,而无需更改/知道他们的密码。