我正在爲我創建的應用程序開發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