我正在为我创建的应用程序开发API。这个应用程序将从这个API获得所有的信息(首先会授权用户,然后获取信息)CakePHP使用REST API识别用户
现在,我试图让用户发送用户名和密码到API,它验证信息和如果它是“好”或“不”,则返回,只能以简单的方式启动。我知道所有涉及这个的安全性,只需要让这个工作。
已经设法在API端发送用户名和passsword(并且我100%确定数据被正确保存)。不过,当我打电话
$this->Auth->identify($this->request->data);
它始终返回false,我(与参数的不,结果是一样已经尝试过)。
我正在使用HttpRequester,firefox插件发送信息。
我已经做了一个$ this-> request-> data的调试,看看信息是否正确,它是。自密码被哈希后,无法查找数据库。
数据库密码字段是300的长度(255已经尝试过,也没有工作)
感谢您的帮助
编辑VARCHAR:
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'email',
'password' => 'password'
]
],
]
]);
if($this->request->is('POST')){
//debug($this->request->data);
$user = $this->Auth->identify($this->request->data);
}
用户表:
protected $_accessible = [
'*' => true,
];
/**
* Hash password
*
*/
protected function _setPassword($password)
{
return (new DefaultPasswordHasher)->hash($password);
}
protected function _getFullName()
{
if(isset($this->_properties['full_name'])){
return ucwords(mb_strtolower($this->_properties['full_name']));
}
}
ps:还试着做下面的事情(替换变量米后,也没有运气)
$this->request->data['username'] = "xxxx";
$this->request->data['password'] = "zzzz";
在请求数据,你必须使用自定义字段名称,例如'email'而不是'username'。 'username'键只是认证者可以访问你配置的字段/列名的选项名。 – ndm
是的,这是问题:)谢谢队友! – Cafn