密码重置电子邮件html


Password reset email html

当用户忘记密码时,我想给他/她发一封电子邮件。此电子邮件应具有指向用户可以在其中输入新密码的页面的链接。我该给他们发什么链接?我的意思是,我应该把用户名作为一个参数放在url中吗?如果是,我该如何隐藏参数以避免在url中显示。我知道还有其他问题可以回答,但我真的无法理解。我是编程新手。谢谢你的帮助。

我使用随机生成的字符串来实现这一点,比如说32个字符长,它被生成并保存在数据库中的users表中,在那里我有一个名为NotAproved的列。然后,我向用户发送一封电子邮件,其中包含一个32个字符的字符串作为参数的链接。链接下的引擎获取字符串,在数据库中搜索相同的字符串并重置密码,将NotAproved设置为0。若用户刚注册时确认了电子邮件,我会使用相同的字段作为权限指示符。

当用户请求新密码时,您会创建一个唯一的字符串,并将其保存在数据库中。然后,您通过电子邮件向用户发送一个包含该字符串的url和更改密码的路径。最后,您只需要确保当用户访问该URL时,这两个随机字符串是相等的。

但不要重新发明轮子。使用一些第三方应用程序。当然你的框架至少有一个。

正如其他人已经建议的那样,最好生成一个与用户的任何信息无关的随机代码。然后,该代码可以与userid一起存储在数据库中的一个单独的表中,但重要的一点是:只存储该代码的散列

如果你将代码明文存储在数据库中,那么你的密码重置系统将比登录公式弱。通常,破解密码重置功能确实比破解登录系统更容易。

使用一个众所周知的框架的源代码是个好主意。如果你正在寻找一个独立的类,它可以提供这样的重置链接,也许你想看看我的例子。