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, хотя я предполагаю, что она доступна и в большинстве других баз данных.

Другие вопросы по тегам