我正在使用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(),或者以其他任何方式实现它?