我正在使用Blowfish哈希密码,然后保存在我的模型中,如下所示:
...
$passHash = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passHash->hash($this->data[$this->alias]['password']);
...
我正在使用MySQL后端,显然我不能在该用户的密码字段中分配密码,因为它永远不会使用Auth Components身份验证进行身份验证,因为它使用的是Blowfish hasher。
那么,我怎样才能为用户分配一个自定义密码供他们使用?
答案 0 :(得分:1)
为什么不在用户模型中使用编辑方法并将相应的视图烘焙出来?您可以在那里编辑用户密码,如果您以这种方式向数据库发送密码,它将负责密码哈希。
答案 1 :(得分:0)
根据同事的建议,我最终创建了一个shell脚本来管理用户。
在Console / Command中我创建了 UserShell.php ,它有一个updatePassword函数,该函数将用户名和密码作为参数。在函数中,我使用用户名设置用户,然后使用以下内容保存由模型beforeFilter
进行哈希处理的自定义密码设置用户...
$this->User->saveField('password', $password);
这是我的问题的快速解决方案。