1

我正在使用 SfGuard 在 Symfony 1.4 中实现用户密码重置。

期望的过程:

  • 用户点击链接
  • 获取带有 url 和过期令牌的电子邮件
  • 转到 url 并提供授权令牌(在请求中或手动)
  • 重置密码
  • 收到密码更改的第二封电子邮件通知

任何实现此功能的插件/模式?

4

1 回答 1

2

你几乎描述了这个过程。这是一个粗略的指南——因为我不知道你的 ORM,我相信你使用 Propel,因为这个功能存在于sfDoctrineGuardPlugin中。

  • 在 sfGuardProfile 用户模型中添加两​​个字段:token 和 tokenExpiresAt
  • 创建一个操作 (reset_request) 来处理生成并通过电子邮件发送 URL + 令牌
  • 从您的登录页面等链接到此操作。
  • 创建一个操作 (reset_token),根据提供的 :token 和 expireAt > time() 使用 UserProfilePeer 查找用户
  • 为用户提供一个表单以设置新密码并处理提交+保存用户和登录。

看看它是如何在sfGuardForgotPasswordActions中实现的,以获得更多灵感。

于 2012-06-11T21:32:26.017 回答