2012-08-16 35 views
-1

我是PHP的新手。我想创建一个模块,门户管理器用临时密码创建“用户”。创建密码重置链接,在PHP中过期24小时

  1. 一旦创建了用户,该特定用户应该会收到带有过期24小时链接的电子邮件。
  2. 经理通过其他方式向用户传达临时密码。
  3. 如果用户点击24小时内的电子邮件链接,它应该要求临时密码,新密码,并有一个确认新密码字段。
  4. 如果临时密码正确,则用数据库中的新密码替换临时密码。

我该如何实施?

+0

您是否正在寻找某人为您创建完整的逻辑,即使您没有任何代码供我们使用,在谷歌搜索时发现用户注册时的时间差减去当前时间,只有在您卡住时才寻求帮助一些地方与您的代码... – 2012-08-16 15:50:03

+0

现在我试图创建一个到期令牌。 – vimokumar 2012-08-16 15:50:23

+0

@AmanVirk:谢谢。 – vimokumar 2012-08-16 15:54:43

回答

0

我不能写吧,因为我不知道您的应用程序是如何构成的,但这将是我采取的一般方法:

  1. 用户创建,推测可能与一个用户名,并将这些细节放入数据库中。
  2. 临时密码以随机字符串形式生成。在数据库中存储散列(MD5,SHA - 如果您不知道,请将它们谷歌)以及NOW()的时间戳
  3. 用户使用用户名和临时密码登录。如果用户名和密码匹配,并且当前时间减去所记录的时间少于24小时,则请求新密码。做相同的程序,将其散列并存储在数据库中。当他们下次登录时,检查哈希匹配。

这是否有意义或是任何部分完全陌生,需要进一步解释?

+0

感谢您的意见,是有道理的。 – vimokumar 2012-08-16 16:21:14

1

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

实例链接:

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

在数据库表这种结构:

reset_id, user_id, reset_key, reset_timeout, reset_temp_password 

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

+0

谢谢你的回应。 – vimokumar 2012-08-16 16:23:21