2012-06-11 74 views
1

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

希望的过程:

  • 用户点击链接
  • 获取电子邮件,url和到期令牌
  • 前进到URL和授权提供令牌(在请求或手动地)
  • 重置口令
  • 获取密码更改的第二封电子邮件通知

任何插件/模式实现?

+3

我认为sfDoctrineGuardPlugin(http://www.symfony-project.org/plugins/sfDoctrineGuardPlugin)实现了你想要的 –

回答

2

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

  • 添加两个字段到您的sfGuardProfile用户模式:令牌和tokenExpiresAt
  • 创建一个动作(reset_request)从你的登录页面等处理生成和电子邮件的URL +令牌
  • 链接到这个行动。
  • 创建一个动作(reset_token)中查找使用UserProfilePeer根据提供的用户:令牌和expireAt>时间()
  • 存在的形式为用户设置新密码和办理提交+保存用户并登录。

看看它是如何在sfGuardForgotPasswordActions实现更多的灵感。

+0

Thx。该代码使用Doctrine作为其ORM,但看起来我们可以解决这个问题。我确实在sfDoctrineGuardPlugin中寻找类似的东西,但显然看起来并不够硬。 – chernevik

+0

也许我是个虚拟人,但是我已经用六种方式将礼包包装到星期天,但仍然没有看到类似令牌授权一代的任何东西。我错过了什么? – chernevik

+0

嗯,这是用“记得我”饼干的钥匙吗? – chernevik