如何通过在CakePHP中搜索散列密码来检索数据?

时间:2017-06-16 13:47:33

标签: mysql cakephp

我正在使用CakePHP 3.3

Table: block_logins
******************** 1. row *********************
           id: 1
   ip_address: 
     username: 
     password: $2y$10$5ijG2YNs74pirWUAkDu2UuObWMmAjW25dvoR8rXIMCcym9t5AP6VG
  description: test
      expires: 2017-06-17 13:48:02
date_modified: 2017-06-16 13:49:09
 date_created: 2017-06-16 13:48:02
*************************************************

代码:

$passwordHasherObj = new \Cake\Auth\DefaultPasswordHasher();
        $password = $passwordHasherObj->hash($password);

return $this->find('all')
            ->where(["OR" => ["ip_address" => $users_ip, "username" => $username, "password" => $password]])
            ->andWhere(["expires >" => date("Y-m-d H:m:s")])
            ->execute()->fetchAll('assoc');

我试图通过匹配ip_address或用户名或密码来从这个block_logins表中获取数据。

密码在保存到此表之前进行哈希处理,因此当我尝试执行此查询时,密码不匹配,并返回零行。

有没有办法在find()中使用DefaultPasswordHasher的check(),或者以其他任何方式实现它?

0 个答案:

没有答案