如何通过电子邮件发送用户新链接来创建密码

时间:2013-03-03 21:44:50

标签: php email passwords reset

根据这篇文章,我需要:

PHP password recovery 你没有“恢复”密码。你做的是两件事之一。

  1. 向用户发送一个链接以创建新密码,覆盖当前密码。
  2. 向用户发送随机生成的密码,然后让他们更改密码。
  3. 我已经咬了一个大项目,我拼命地要求提供工作示例,或者至少就如何做到这一点提出最好的建议;例如:#1电子邮件用户链接以创建新密码,覆盖当前密码。我被告知db有密码salting,并使用Blowfish。我真的不知道究竟是什么意思,我正在查看代码以试图找出如何添加“重置密码?”链接到他们当前的登录页面。

    然后,如果您如此倾向,您是否可以协助如何通过电子邮件向用户发送随机生成的pw,然后将其更改为[上面的#2?

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

1 个答案:

答案 0 :(得分:4)

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

  1. 检查电子邮件地址是否属于注册用户。
  2. 生成随机不可预测的代码。
  3. 将此代码散列在数据库中,同时存储用户ID和有效期。
  4. 使用此代码发送链接到指定的电子邮件地址,因此只有用户自己才能获得此链接。
  5. 当用户点击链接时,提取代码,并检查其散列是否在数据库中。
  6. 如果它在数据库中并且尚未过期,则您知道用户ID,并且您可以允许用户输入新密码(不要向用户发送自生密码)。
  7. 将代码标记为已使用或将其从数据库中删除。
  8. 我希望这可以让你了解必要的步骤。如果您想了解有关BCrypt和salting的更多信息,可以查看有关散列密码的tutorial