2009-12-12 3 views
3

Я обновляю приложение cakephp на своем новом задании от l.1 до 1.2. Я заменяю код авторизации 1.1 с оригинальным компонентом Auth. Проблема в том, что пароли не хешированы в устаревшей БД. Как временно отключить хэширование паролей, чтобы я мог начать использовать компонент Auth.Turn of Cakephp Auth password hashing

Не волнуйтесь, я воспользуюсь паролями и изменю это позже.

ответ

4

Вот решение, адаптированное из другого ответа переполнения стека. Переопределяя модель User :: hashPassword, ничего не делать в принципе.

How do I replace the cakephp password hashing algorithm?

<?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; 
    } 
} 
?> 
+1

Вам также необходимо настроить AuthComponent для аутентификации с помощью модели пользователя, чтобы использовать это ... $ this-> Auth-> authenticate = $ this-> Пользователь; – neilcrookes

+0

На самом деле это не сработало для меня в CakePHP 2.x, поэтому мне пришлось вместо этого создать настраиваемый компонент auth: http://stackoverflow.com/questions/573307/how-do-replace-the-cakephp -password хэширования-алгоритм/10422486 # 10422486 – jesal

0

Технически вы могли бы просто переписать все пароли в базе данных одним махом, используя запрос ниже. РЕЗЕРВНЫЙ ВАШ СТОЛ!

UPDATE user_table SET password = SHA1(password) 

Из руководства CakePHP по умолчанию хэширования схема является SHA-1, так что если вы не изменили его, это должно сделать это. SHA1 - это встроенная функция MySQL, хотя я предполагаю, что она доступна и в большинстве других баз данных.

+0

Я знаю, что я могу хэширования паролей таким образом, но я просто хочу, чтобы временно отключить его. – jbrass

+1

Кроме того, cakephp использует соль, поэтому было бы плохой идеей. Возможно, позже вам придется создать скрипт для выбора, а затем хэш через Security :: hash(). – metrobalderas

+1

CakePHP Security :: hash() префикс строки к хешу со значением значения безопасности из app/config/core.php – neilcrookes