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

dcp*_*ham 1 php email passwords reset

根据另一篇文章,我需要:

PHP 密码恢复 您无法“恢复”密码。你所做的只是两件事之一。

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

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

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

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

mar*_*kli 5

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

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

我希望这能让您了解必要的步骤。如果您想了解有关 BCrypt 和 salting 的更多信息,可以查看有关哈希密码的教程