CodeIgniter:丢失密码功能,如何实现?

时间:2010-12-16 13:15:48

标签: php codeigniter

我的客户端有一个在CodeIgniter上运行的站点(我没有创建它,并且对CI知之甚少),他们想添加丢失的密码功能,我不知道如何实现此功能使用CI。我知道PHP的大部分经验来自WordPress。

有人能指出我正确的方向来实施这类事情的最佳做法吗?

3 个答案:

答案 0 :(得分:14)

这就是我实现它的方式:

  • 用户点击链接“忘记密码”
  • 用户在其电子邮件地址中输入内容
  • 您在用户表中放置了一个随机密钥和临时密码
  • 您发送的电子邮件中包含用于激活您设置的密码的链接。该链接具有随机密钥
  • 用户点击链接。该链接应与随机字符串匹配
  • 您激活密码并清除临时密码和随机字符串
  • 用户登录并将密码更改为他想要的内容

CI是PHP,因此您只需在任何其他PHP项目中实现它,除非您将在控制器/模型/视图中执行。

答案 1 :(得分:3)

恕我直言的好方法是:

  • 如果用户忘了他的密码,他将需要一个新的密码。此时,您应该在db
  • 中存储哈希和时间戳
  • 向用户发送一封电子邮件,其中包含指向重置站点的链接,其哈希值存储在db中作为get-param(例如example.de/reset-pw/ [user's hash here])
  • 如果用户关注此链接,网站会检查请求和使用此链接之间经过的时间(大多数网站允许大约一天的时差)
  • 如果每个人都有效,用户可以输入新的pw

你可以使用其他系统,如秘密问题等,但我更喜欢电子邮件模型,因为安全性最大化(问题也可以被其他人接听,而你需要在这里获取用户电子邮件)< / p>

答案 2 :(得分:2)

CodeIgniter - 是一个遵循MVC模式的常规php框架。

它没有任何内置的auth库。

您必须使用某些第三方库。其中最好的是Ion-auth。 https://github.com/benedmunds/CodeIgniter-Ion-Auth

Howewer - 如果它是一个人们可以注册的现有网站 - 很可能已经实现了一些auth库。我会查看系统/应用程序/库(或有时/应用程序/库)文件夹,看看那里有哪些库并从那里开始。