【问题标题】:Features of reset password functionality (one-click, one-use, 24 hours, ???)重置密码功能的特点(一键式,一次使用,24小时,???)
【发布时间】:2026-02-14 10:25:02
【问题描述】:

我们正在设置一项功能,使用户能够在无法访问其帐户时重置密码。我们要求他们提供电子邮件地址(他们用于登录网站),向他们发送带有唯一链接的电子邮件。

问题是:

  1. 链接应该在第一次点击时过期,还是应该在第一次使用时过期(即他们成功重置密码)?
  2. 链接是否应该有 24 小时有效期(或类似的)?
  3. 用户点击该链接后是否应该登录?

【问题讨论】:

    标签: passwords reset forgot-password


    【解决方案1】:
    1. 更改密码后链接应过期。如果您在第一次单击时使链接过期,这可能会导致问题。假设我的互联网连接不好,并且页面没有完全加载到我的浏览器中。我重新加载页面,它说链接已过期。我不会很高兴用户看到这一点。

    2. 是的,您应该将链接限制在合理的时间范围内。 24小时看起来很合理。如果你不限制链接的生命周期,首先你必须永远存储生成的id,其次你保持这个链接活动的时间越长,链接被攻击者窃取的可能性就越大,从而导致账户被盗。

    3. 只有在用户更改密码后才能让用户进入。如果您只是让他们登录,他们可能会决定不再需要更改密码。这样他们就可以永远登录系统而无需更改/知道他们的密码。

    【讨论】:

      【解决方案2】:
      1. 成功重置密码后,该链接应过期。如果用户以某种方式最终需要密码重置指导并希望稍后返回,他们应该能够做到。
      2. 也就是说重置最终会在 48 小时后到期?
      3. 是的,他们应该在重置密码后登录,否则在您的用户执行他们在您的网站上要做的事情的过程中会出现另一个令人沮丧的步骤。

      【讨论】:

      • @JiminyCricket - 用户是否应该在“点击”链接时登录(而不是在他完成该步骤后)? @亚历克斯
      • @JiminyCricket @Alex 对于迟到的回复家伙感到抱歉 - 第 3 点 - 用户是否应该在“点击”链接时登录(我并不是说他是否应该在完成后登录过程 - 根据我的说法,答案是肯定的)?
      • 不,他点击链接后不应该登录,因为他可能不会重置他的密码,下次他访问您的网站时,他需要再次点击忘记密码链接