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


How to Email user new link to create a password

根据这个帖子,我需要:

PHP密码恢复你不能"恢复"密码。你所做的只有两件事之一。

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

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

那么,如果你愿意的话,你能帮助如何通过电子邮件向用户发送随机生成的pw,然后让他们更改它[上文#2]吗?

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

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

  1. 检查邮件地址是否属于注册用户
  2. 生成一个随机的不可预测的代码。
  3. 将此代码与用户id和到期日期一起存储在数据库中。
  4. 发送带有此代码的链接到给定的电子邮件地址,因此只有用户自己将获得此链接。
  5. 当用户点击链接时,提取代码,并检查其散列是否在数据库中。
  6. 如果它在数据库中并且还没有过期,你知道用户id,你可以允许用户输入一个新密码(不要向用户发送自己生成的密码)。
  7. 将代码标记为已使用或从数据库中删除。
我希望这能给你一个必要步骤的想法。如果你想了解更多关于BCrypt和盐,你可以看看这个关于散列密码的教程。