Turn of Cakephp Auth хеширование пароля
Я обновляю приложение cakephp на своей новой работе с l.1 до 1.2. Я заменяю код авторизации homegrown 1.1 на отличный компонент Auth. Проблема в том, что пароли не хэшируются в устаревшей БД. Как временно отключить хеширование пароля, чтобы я мог начать использовать компонент Auth.
Не волнуйтесь, я буду хэшировать пароли и изменить это позже.
2 ответа
Вот решение, адаптированное из другого ответа о переполнении стека. Переопределив модель User::hashPassword, ничего не делать в принципе.
Как заменить алгоритм хеширования паролей CakePHP?
<?php
class User extends AppModel {
var $name = 'User';
// this is used by the auth component to turn the password into its hash before comparing with the DB
function hashPasswords($data) {
return $data;
}
}
?>
Технически вы можете просто хешировать все пароли в базе данных одним махом, используя запрос ниже. BACKUP YOUR TABLE FIRST!
UPDATE user_table SET password = SHA1(password)
Из руководства CakePHP схема хеширования по умолчанию - SHA-1, поэтому, если вы ее не изменили, она должна это сделать. SHA1
это встроенная функция MySQL, хотя я предполагаю, что она доступна и в большинстве других баз данных.