我有一个用户编辑视图。当人们访问此视图时,它在密码块中有散列密码。
如果您单击保存,它(显然)会再次对密码进行哈希处理,因为这是在我的用户模型中。
public function beforeSave($options = array()) {
if(!empty($this->data['User']['password'])) {
$this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
}
return true;
}
但我不想让它散列两次(因为这意味着密码已更改)。我更改了编辑视图并添加array('value' => '','autocomplete'=>'off')
到密码字段。现在当我保存它时,它会在数据库中保存一个空白字符串。我认为它会阻止它使用函数if(!empty($this->data['User']['password']))
中的语句来执行此beforeSave
操作。
如何防止密码被双重哈希?