Я использовал этот учебник , чтобы переписать мои функции входа / выхода для обработки аутентификации и сопоставления паролей в модели.
Теперь он отлично добавляет пользователя, но при входе в системуполя имени пользователя / пароля отклоняются.Похоже, что функция входа в систему ищет хешированный пароль, отличный от того, который хранит моя новая функция hashPasswords ().Любые предложения о том, в чем может быть проблема?
Это довольно стандартная установка.Спасибо за любую помощь!
Соответствующие разделы кода:
Модель пользователя:
var $validate = array(
'password' => array(
'The Password must be filled' =>array(
'rule' => 'notEmpty',
'message' => 'Please supply a valid password.'
),
'The Password must be between 5 and 15 characters' => array(
'rule' => array('between', 5, 15),
'message' => 'The password must be between 5 and 15 characters.'
),
'The passwords do not match' => array(
'rule' => 'matchPasswords',
'message' => 'The passwords do not match.'
)
),
function hashPasswords($data) {
if (isset($this->data['User']['password'])) {
$this->data['User']['password'] = Security::hash($this->data['User']['password'], NULL, TRUE);
return $data;
}
return $data;
}
function beforeSave() {
$this->hashPasswords(NULL, TRUE);
return TRUE;
}
Контроллер пользователя:
function beforeFilter() {
parent::beforeFilter();
if ($this->action == 'add' || $this->action == 'edit' ) {
$this->Auth->authenticate = $this->User;
}
}
function add() {
if (!empty($this->data)) {
if ($this->User->save($this->data)) {
$this->Session->setFlash('Your Account Has Been Created.');
$this->redirect(array('action' => 'homepage'));
}
}
}
function login() {
}