Cakephp 使用 REST 识别用户 API
Cakephp Identify user using REST API
我正在为我正在创建的应用程序开发 API。此应用程序将从中获取所有信息 API(首先将验证用户,然后获取信息)
现在,我正在尝试让用户向 API 发送用户名和密码,它验证信息和 returns 如果它是 "ok" 或 "not",上手很简单而已。我知道其中涉及的所有安全性,只需要让它正常工作。
已设法在 API 端发送用户名和密码(我 100% 确定数据已正确保存)。虽然,当我打电话给
$this->Auth->identify($this->request->data);
对我来说总是returns错误(已经尝试过带参数和不带参数,结果都是一样的)。
我正在使用 HttpRequester、firefox 插件来发送信息。
我调试了 $this->request->data 看信息是否正确,确实如此。无法在数据库中查找,因为正在对密码进行哈希处理。
数据库密码字段是一个长度为 300 的 varchar(已经试过 255,也没有用)
感谢您的帮助
编辑:
$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);
}
用户Table:
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:还尝试执行以下操作(替换变量形式 post,但也不走运)
$this->request->data['username'] = "xxxx";
$this->request->data['password'] = "zzzz";
问题出在这里
'Form' => [
'fields' => [
'username' => 'email', //email is your database field
'password' => 'password' // password is your database field name
]
],
您的代码应该是
'Form' => [
'fields' => [
'username' => 'username',
'password' => 'password'
]
],
我正在为我正在创建的应用程序开发 API。此应用程序将从中获取所有信息 API(首先将验证用户,然后获取信息)
现在,我正在尝试让用户向 API 发送用户名和密码,它验证信息和 returns 如果它是 "ok" 或 "not",上手很简单而已。我知道其中涉及的所有安全性,只需要让它正常工作。
已设法在 API 端发送用户名和密码(我 100% 确定数据已正确保存)。虽然,当我打电话给
$this->Auth->identify($this->request->data);
对我来说总是returns错误(已经尝试过带参数和不带参数,结果都是一样的)。
我正在使用 HttpRequester、firefox 插件来发送信息。
我调试了 $this->request->data 看信息是否正确,确实如此。无法在数据库中查找,因为正在对密码进行哈希处理。
数据库密码字段是一个长度为 300 的 varchar(已经试过 255,也没有用)
感谢您的帮助
编辑:
$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);
}
用户Table:
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:还尝试执行以下操作(替换变量形式 post,但也不走运)
$this->request->data['username'] = "xxxx";
$this->request->data['password'] = "zzzz";
问题出在这里
'Form' => [
'fields' => [
'username' => 'email', //email is your database field
'password' => 'password' // password is your database field name
]
],
您的代码应该是
'Form' => [
'fields' => [
'username' => 'username',
'password' => 'password'
]
],