Cakephp ';临时';重置密码时的登录凭据?

Cakephp ';临时';重置密码时的登录凭据?,cakephp,passwords,cakephp-2.0,authentication,Cakephp,Passwords,Cakephp 2.0,Authentication,我希望在我的CakePHP应用程序中构建一个“重置密码”功能,并在网上阅读我决定:让用户键入他们的电子邮件地址,向他们发送一封带有链接的电子邮件。这将显示一个允许他们更改密码的表单。显然,问题在于我不知道如何使用临时密码登录用户。我的做法正确吗?我认为我发送给他们的url应该是他们电子邮件的散列版本加上一个uuid用作临时密码,并且我会根据url中的电子邮件执行用户id查找……但是,我仍然不知道如何手动登录,以便他们可以更改密码 我使用会话方法。 使用电子邮件中的令牌后,用户将获得 Tmp.Us

我希望在我的CakePHP应用程序中构建一个“重置密码”功能,并在网上阅读我决定:让用户键入他们的电子邮件地址,向他们发送一封带有链接的电子邮件。这将显示一个允许他们更改密码的表单。显然,问题在于我不知道如何使用临时密码登录用户。我的做法正确吗?我认为我发送给他们的url应该是他们电子邮件的散列版本加上一个uuid用作临时密码,并且我会根据url中的电子邮件执行用户id查找……但是,我仍然不知道如何手动登录,以便他们可以更改密码

我使用会话方法。 使用电子邮件中的令牌后,用户将获得

Tmp.User.id (as opposed to Auth.User.id)
在允许他更改密码的会话中。
之后,它将再次从会话中删除。

出于所有目的,该用户将完全登录,就像我使用了AuthComponent一样?如果将Acl安装到应用程序中,该操作的效果如何?你不能让它们干扰!您的操作是公共的(在Auth->allow中),您手动处理此控制器操作中的逻辑(如果会话中没有Tmp.User.id密钥,则不允许)。好的,我将对此进行研究。因为我使用了Auth,所以到目前为止我还没有使用会话,所以应该很有趣!谢谢你(顺便说一句,你的谷歌地图助手踢严重屁股!!!)谢谢。顺便说一句:Auth组件还依赖于会话(上面的Auth.User数组)——这就是我对这种临时会话方法的想法。为什么用户需要登录才能更改密码?我想不出有多少系统能做到这一点——如果你忘记了,你会被锁定,直到你完成重置过程,输入一个新密码,然后用该密码登录。我绝对喜欢这种方法。我可以想象,为了方便他们,我可以让他们更改密码,然后默默地登录,不是吗?