CakePHP忘记/重置密码

时间:2012-08-08 13:21:27

标签: cakephp

我正试图了解在cakephp 2.1中创建忘记密码功能的过程。这就是我想要发生的事情。

  1. 用户点击忘记密码链接
  2. 输入他们的电子邮件
  3. Cake检查电子邮件是否存在
  4. 如果是的话,会发送一个链接,其中包含附加到网址的某种随机字符串
  5. 他们点击链接并输入新密码
  6. 数据库中的密码已更新
  7. 用户可以登录
  8. 我发现了这个post,但我希望有人可以提供一些示例代码来查看。

    非常感谢提前

1 个答案:

答案 0 :(得分:1)

我最近在个人项目中做过类似的事情。它可能不是最好的解决方案,但这是我的过程:

  1. 未登录的用户以“恢复密码”形式提交电子邮件。
  2. 控制器找到电子邮件的所有者(如果有),生成代码并将其保存到用户模型中的专用列。然后将编码链接发送到电子邮件,该电子邮件包含用户ID和生成的代码。
  3. 用户访问他的电子邮件并单击链接。
  4. 控制器接收param并将其拆分为代码和id,读取用户ID并检查代码是否匹配,如果是,则显示新密码表单,如果没有,则清除代码并要求用户重新启动该进程。 / LI>

    注释。

    • 我使用uuid作为用户ID,并使用10长度随机字符串作为代码。我通过“_”加入,以便将代码发送到电子邮件。
    • 在我的实现中,代码不会在时间到期,但如果用户登录或错过(最有可能通过猜测),代码将会清除。