【问题标题】:Password Reset Logic密码重置逻辑
【发布时间】:2017-07-14 15:32:11
【问题描述】:

我正在实现密码重置功能。只有管​​理员才能在不知道当前密码(或新用户)的情况下重置某人的密码。

管理员将点击重置密码,这将生成一个 40 个字符的令牌。 令牌将使用 Bcrypt 进行哈希处理并存储在数据库中,然后将未哈希处理的令牌通过电子邮件发送给用户 /resetPassword/tok=?

用户点击链接后,必须验证令牌。我只是想知道您如何从链接中验证令牌。 我知道如何检查它是否已被使用,或者是否已过期(48 小时)。但是您如何通过该电子邮件验证它来自该用户?

谢谢!

【问题讨论】:

    标签: bcrypt reset-password


    【解决方案1】:

    您无法知道 URL 是如何被调用的。它可能是用户点击电子邮件中的链接而发生的,也可能是黑客/机器人生成并由软件或工具提交。

    您可以做的是确保您用作目标的电子邮件经过验证。大多数 Web 应用程序作为用户在激活用户帐户之前验证他们的电子邮件帐户(向用户发送一封电子邮件,带有令牌和用户 ID,并且用户单击电子邮件中提供的 URL)。这是您了解电子邮件实际上属于用户的方式。

    当然,您生成的每个令牌都与预期的用户 ID 一起保存在一个表中。您的令牌也可能有到期日。

    这篇博文是保护用户登录的绝佳参考,我强烈推荐:

    https://www.troyhunt.com/everything-you-ever-wanted-to-know/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多