您好,我正在寻找使用 CakePHP 创建一个简单的忘记密码系统,用户将在其中输入他们的用户名/电子邮件,然后收到一封电子邮件,其中包含他们可以单击以创建新密码的链接。
我用 Google 搜索了一下,但没有找到任何东西:/
使用 CakePHP 1.3
最佳答案
- 显示带有表单的 View ,以便用户可以输入他们的电子邮件地址。
- 将表单发布到
reset_password
Controller Action 。 - 在
reset_password
Controller Action 寻找this->data['User']['email']
并将电子邮件地址存储在数据库表中。 - 同一个数据库表应该有一个
key
或token
field 。该字段应为 CHAR(40)。在reset_password
行动$key = Security::hash(String::uuid(),'sha1',true)
创建一个键或散列并将其存储在key
中或token
领域。 - 要生成 URL,请执行
$url = Router::url( ($this->here), true ).'/'.$key
Controller 内部reset_password
行动。这将根据当前操作生成一个 url 并向其附加关键参数,您可以在用户单击电子邮件链接时在同一函数中验证该参数。 - 您还需要设置
Email
组件实际发送电子邮件,包括在邮件正文中生成的 URL。
这应该足以让您朝着正确的方向前进。
关于php - CakePHP 忘记密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6012066/