CakePHP 2.0 AuthComponent автоматически хеширует пароли - PullRequest
0 голосов
/ 20 ноября 2011

В настоящее время я работаю с новой версией нашего прекрасного фреймворка.Теперь, когда я работаю над регистрацией, AuthComponent автоматически хеширует мой пароль, хотя в руководстве явно сказано, что он был удален в новой версии.Так это основная ошибка или я что-то не так?В моем коде нет ничего особенного, у меня просто есть два поля пароль и * Подтверждение_пароля *, которые я сравниваю при проверке.Но поскольку CakePHP хеширует пароль , мне пришлось написать что-то вроде этого:

public function checkPasswords($data) {
        $data = array_keys($data);
        return $this->data['User'][$data[0]] === AuthComponent::password($this->data['User']['confirm_password']);
    }

Основная проблема возникает при попытке входа в систему, поэтому поле пароля не хэшируется автоматически.Кто-нибудь может мне помочь?Я не знаю, почему AuthComponent хэширует пароль в моей функции «register», а не в моей «login»?

1 Ответ

1 голос
/ 20 ноября 2011

Похоже, вы используете другую версию CakePHP. Версия 2.0+ определенно не хэширует пароли без явного их кодирования; Таким образом, вы используете 1.x или вы хэшировали пароли в других местах вашего кода. Вы уверены, что метод, который передает $ data в checkPasswords (), не выполнил хеширование?

Покажите нам функцию register (), чтобы лучше понять проблему.

...