为用户分配自定义密码CakePHP AuthComponent和Blowfish哈希

时间:2014-09-26 16:22:32

标签: cakephp authentication

我正在使用Blowfish哈希密码,然后保存在我的模型中,如下所示:

...

$passHash = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passHash->hash($this->data[$this->alias]['password']);

...

我正在使用MySQL后端,显然我不能在该用户的密码字段中分配密码,因为它永远不会使用Auth Components身份验证进行身份验证,因为它使用的是Blowfish hasher。

那么,我怎样才能为用户分配一个自定义密码供他们使用?

2 个答案:

答案 0 :(得分:1)

为什么不在用户模型中使用编辑方法并将相应的视图烘焙出来?您可以在那里编辑用户密码,如果您以这种方式向数据库发送密码,它将负责密码哈希。

答案 1 :(得分:0)

根据同事的建议,我最终创建了一个shell脚本来管理用户。

在Console / Command中我创建了 UserShell.php ,它有一个updatePassword函数,该函数将用户名和密码作为参数。在函数中,我使用用户名设置用户,然后使用以下内容保存由模型beforeFilter

进行哈希处理的自定义密码

设置用户...

$this->User->saveField('password', $password);

这是我的问题的快速解决方案。