首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP忘记密码

CakePHP忘记密码
EN

Stack Overflow用户
提问于 2011-05-16 07:53:33
回答 3查看 7.5K关注 0票数 3

嗨,我希望创建一个简单的忘记密码系统使用CakePHP,其中用户将键入他们的用户名/电子邮件,然后收到一个链接,他们可以点击创建一个新的密码电子邮件。

我用谷歌搜索了一下,但什么也没找到:/

使用CakePHP 1.3

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-18 04:42:07

  1. 显示带有表单的视图,以便用户可以输入其电子邮件地址。
  2. 使表单post到reset_password控制器操作。
  3. reset_password控制器操作中查找this->data['User']['email']并将电子邮件地址存储在数据库表中。
  4. 此同一数据库表应具有keytoken字段。此字段应为CHAR(40)。在reset_password操作中,执行$key = Security::hash(String::uuid(),'sha1',true)以创建一个键或散列,并将其存储在keytoken字段中。
  5. 以在控制器的$url = Router::url( ($this->here), true ).'/'.$key操作中生成URL。这将生成一个基于当前操作的url,并将关键参数附加到它后面,当用户单击电子邮件链接时,您可以在此相同的函数中验证该参数。
  6. 您还需要设置Email组件来实际发送电子邮件,其中包含上面在邮件正文中生成的URL。

这应该足以让您朝着正确的方向前进。

票数 12
EN

Stack Overflow用户

发布于 2011-05-16 07:56:30

  • 向用户索要足够长度的随机字符串,将其存储在数据库中,并将其作为链接与电子邮件一起通过电子邮件发送给用户。让它在24小时内过期。如果他们没有申请新密码,告诉他们忽略这封电子邮件。
  • 匹配数据库中的电子邮件和字符串。向他们提供表单以输入新密码或通过电子邮件发送新密码(不同的随机字符串)。
票数 3
EN

Stack Overflow用户

发布于 2011-05-16 08:12:58

您可以查看两个可能满足您的需求的预制解决方案:

Jedt - https://github.com/jedt/spark_plug的火花塞

由CakeDC - https://github.com/CakeDC/users提供的用户插件

两者都有“忘记密码”功能。您可以将其中一个插件包含到您的项目中,从而获得所有代码的全部好处,或者您可以简单地窃取他们的代码,以了解如何在您自己的项目中工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6012066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档