-1

我是 PHP 的新手。我想创建一个模块,门户管理员在其中使用临时密码创建“用户”。

  1. 创建用户后,该特定用户应收到包含 24 小时后过期链接的电子邮件。
  2. Manager 通过其他方式将临时密码传递给用户。
  3. 如果用户在 24 小时内点击电子邮件链接,它应该要求输入临时密码、新密码和确认新密码字段。
  4. 如果临时密码正确,则将数据库中的临时密码替换为新密码。

我应该如何实现这个?

4

2 回答 2

1

一种选择是在您存储在数据库中的链接中包含一个参数以及到期日期。如果没有这样的参数,则不接受链接。如果有参数,您可以在数据库中检查到期日期。如果有效,则进入更改密码页面。

示例链接:

http://www.example.com/updatepass?key=a8s67as78df7g96sd9fg6sdfg

在具有这种结构的数据库表中:

reset_id, user_id,  reset_key, reset_timeout, reset_temp_password

您可以验证key参数,然后验证临时密码。user_id将用于加入user存储用户信息的表。

于 2012-08-16T15:54:54.510 回答
0

我无法为您编写它,因为我不知道您的应用程序的结构,但这将是我将采取的一般方法:

  1. 创建用户,大概是使用用户名,这些详细信息被放入数据库中。
  2. 临时密码生成为随机字符串。在数据库中存储一个哈希(MD5、SHA - 如果你不知道,可以用谷歌搜索)以及 NOW() 的时间戳
  3. 用户使用用户名和临时密码登录。如果用户名和密码匹配,并且当前时间减去记录的时间少于 24 小时,则要求输入新密码。执行相同的过程,对其进行哈希处理并将其存储在数据库中。当他们下次登录时,检查哈希是否匹配。

这是有道理的,还是任何部分完全陌生,需要进一步解释?

于 2012-08-16T15:54:47.130 回答