Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP 2.0 AuthComponent自动哈希密码_Cakephp_Cakephp 2.0 - Fatal编程技术网

CakePHP 2.0 AuthComponent自动哈希密码

CakePHP 2.0 AuthComponent自动哈希密码,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我目前正在使用我们可爱的框架的新版本。现在,在我进行注册的地方,AuthComponent会自动对我的密码进行散列,尽管手册明确指出,新版本中已删除了该密码。这是一个核心bug还是我做错了什么?我的代码中没有什么特别的地方,我只有两个字段password和*confirm_password*,我在验证中比较了这两个字段。但由于CakePHP散列了密码,我不得不这样写: public function checkPasswords($data) { $data = array_ke

我目前正在使用我们可爱的框架的新版本。现在,在我进行注册的地方,AuthComponent会自动对我的密码进行散列,尽管手册明确指出,新版本中已删除了该密码。这是一个核心bug还是我做错了什么?我的代码中没有什么特别的地方,我只有两个字段password和*confirm_password*,我在验证中比较了这两个字段。但由于CakePHP散列了密码,我不得不这样写:

public function checkPasswords($data) {
        $data = array_keys($data);
        return $this->data['User'][$data[0]] === AuthComponent::password($this->data['User']['confirm_password']);
    }

主要问题发生在我尝试登录时,那里的密码字段没有自动散列。有人能帮我吗?我不知道为什么AuthComponent在我的“register”函数中散列密码,而在我的“login”函数中不散列密码?

听起来您使用的是不同版本的CakePHP。版本2.0+在没有明确编码的情况下绝对不会散列密码;因此,您使用的是1.x,或者在代码的其他地方对密码进行了哈希运算。您确定将$data传递给checkPasswords()的方法没有进行哈希运算吗


向我们展示register()函数,以便更好地理解问题。

好的,可以结束本主题。我的失败,天哪。我真的错过了
$data['User']['password']=AuthComponent::password($this->request->data['User']['password'])在我的函数中。。对不起。