나는 만들고있는 응용 프로그램 용 API를 개발 중입니다. 이 응용 프로그램은이 API의 모든 정보를 가져옵니다. (먼저 사용자를 인증 한 다음 정보를 얻습니다.)Cakephp REST API를 사용하여 사용자 식별
지금 사용자가 사용자 이름과 암호를 API로 보내고 정보를 확인하고 그것이 "ok"또는 "not"이면 매우 간단하게 시작합니다. 나는 이것에 관련된 모든 보안을 알고, 단지이 일을 할 필요가있다.
이미 API 사이드에서 사용자 이름과 비밀번호를 보내고 있습니다. 데이터가 올바르게 저장되었는지 100 % 확신합니다. 비록, 나는
$this->Auth->identify($this->request->data);
그것은 항상 나에게 거짓 (이미 매개 변수와, 그 결과가 동일하지 않고 시도) 반환을 호출 할 때.
나는 HttpRequester, firefox plugin을 사용하여 정보를 보내고 있습니다.
$ this-> request-> 데이터의 디버그를 통해 정보가 정확한지 확인했습니다. 암호가 해시 된 이후 데이터베이스에서 찾기를 수행 할 수 없습니다.
$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);
}
사용자 테이블 : :
데이터베이스 암호 필드는 (이미 255 노력도없이 일) (300) 길이 도움
편집에 대한
감사와 VARCHAR입니다
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 : 또한 다음을 시도해보십시오. m 포스트, 또한 행운)
$this->request->data['username'] = "xxxx";
$this->request->data['password'] = "zzzz";
Configuring Authentication Handlers을 확인해야한다 사용자 정의 필드 이름도'username' 대신에'email'입니다. 'username' 키는 인증 자 (authenticator)가 구성된 필드/열 이름에 액세스 할 수있는 옵션 이름입니다. – ndm
그래, 그게 문제였다 :) 고마워! – Cafn