如何使用PHP进行忘记密码页面?

Dan*_*Dan -5 php sql passwords

不太确定如何解决这个问题.在它上面,我有用户,密码和电子邮件输入.那够了吗?在检查以确保密码和电子邮件与用户名匹配后,我将在PHP页面上做什么?

nic*_*ckf 8

这是一个简单的方法:

您只需要他们的电子邮件地址.让他们输入,然后发送一个带有唯一代码的特殊网址到他们的电子邮件中.在这个阶段,不要重置他们的密码,否则任何恶作剧者只要知道他们的电子邮件地址就可以打破其他人的密码.

一旦用户打开了他们的电子邮件并关注了该链接,您就可以让他们将其更改为他们想要的任何内容.


Jos*_*h K 5

有几种方法可以忘记密码:

秘密问题

当用户注册时强制他们采用您存储在DB(散列)中的秘密问题和答案.如果用户忘记密码,您可以询问问题和答案.如果匹配,则允许他们设置新密码.

这样做的缺点是用户可以输入大多数人都知道的简单答案.

电邮链接

向他们发送一封电子邮件,其中包含重置密码的链接,例如:

http://domain.com/passwordreset.php?id=EMAIL_HASH
Run Code Online (Sandbox Code Playgroud)

该链接应该在某个时间点到期(24小时是标准的).

生成密码

随机生成一个新密码并通过电子邮件发送给他们.当他们登录时,他们必须更改此临时密码.好处是你不必担心电子邮件链接的弱问题或其他专栏.但您仍然有通过电子邮件发送纯文本密码的风险.

  • +1,好的答案:清晰简洁. (2认同)
  • 电子邮件链接是唯一不错的选择.秘密问题令人烦恼且不安全,并且在没有首先确认用户拥有电子邮件帐户的情况下重置密码是一个可怕的想法. (2认同)