1

根据this other post,我需要:

PHP 密码恢复 您不会“恢复”密码。你所做的是两件事之一。

  1. 通过电子邮件向用户发送一个链接以创建新密码,覆盖当前密码。
  2. 通过电子邮件向用户发送一个随机生成的密码,然后要求他们更改密码。

我已经完成了一个巨大的项目,我迫切地要求提供工作示例,或者至少是你关于如何做到这一点的最佳建议;例如:#1 电子邮件用户链接以创建新密码,覆盖当前密码。我被告知数据库有密码盐渍,并使用河豚。我真的不知道这到底是什么意思,我正在检查代码以试图弄清楚如何添加“重置密码?” 链接到他们当前的登录页面。

然后,如果您愿意,您能否帮助如何通过电子邮件向用户发送随机生成的密码,然后让他们更改它[上面的#2?

任务是原样的,到目前为止我不知道要提供什么代码;我希望做过这件事的人可以告诉我什么是有效的,我会尝试实现它。我感谢您的帮助!

4

1 回答 1

4

生成密码重置的常用方法如下所示:

  1. 检查电子邮件地址是否属于注册用户。
  2. 生成随机不可预知的代码。
  3. 将此代码与用户 ID 和到期日期一起存储在数据库中。
  4. 将此代码的链接发送到给定的电子邮件地址,因此只有用户自己会获得此链接。
  5. 当用户单击链接时,提取代码,并检查其哈希是否在数据库中。
  6. 如果它在数据库中并且尚未过期,则您知道用户 ID,并且可以允许用户输入新密码(不要将自己生成的密码发送给用户)。
  7. 将代码标记为已使用或将其从数据库中删除。

我希望这可以让您了解必要的步骤。如果你想了解更多关于 BCrypt 和 salting 的知识,你可以看看这个关于散列密码的教程。

于 2013-03-04T09:27:39.290 回答