2015-06-12 2 views
-6

Мы используем единую таблицу как для обычных, так и для обычных пользователей. Нам нужно сохранить пароль администратора в хэш-формате, но сохранить пароль пользователя в текстовом формате. Как это сделать с помощью CakePHP 3.0Отключить хеширование паролей для определенных пользователей

EDITED: имя пользователя и пароль пользователя используются в качестве учетных данных входа на другой сайт как API. Поэтому мне нужно сохранить пароль без метода хэширования cakephp 3.0

+0

На этой планете буквально нет оснований для сохранения любых паролей пользователей в виде обычного текста. не делай этого. –

+0

нам нужно, чтобы этот пароль использовался для доступа к api –

+1

. Это имеет такое же значение, как: я должен управлять своим автомобилем без тормозов, потому что он должен идти быстрее, чем 5 миль в час. Кроме того, если вам «нужно», что что-то не так с дизайном вашего приложения, например, с использованием пароля пользователя как токена api auth. – AD7six

ответ

1

Как уже отмечалось Serveral раз к вам в комментариях вы никогда не должны хранить пароли в виде обычного текста в базе данных. Это независимо от того, используются ли они прямо в приложении или нет. Как упоминал Энтони в своем комментарии к вашему вопросу, вы должны рассмотреть возможность хранения зашифрованных паролей, зашифрованных, которые могут быть отменены вашим приложением.

Вы также должны убедиться, что используемый вами API не обеспечивает более безопасный способ входа в систему с использованием токенов доступа.

Если вы хотите сохранить сохраненные пароли обычного текста, несмотря на все это, вам следует рассмотреть возможность хранения их в отдельной колонке для ваших хэшированных. Например: -

id | username | password | api_login_password 

Это не было бы хорошей идеей, чтобы смешать использование в password колонны, имея несколько записей с зашифрованными паролями и другими нет.

Используя эту схему, вам не нужно будет хэш api_login_password, но продолжайте хешировать пароли приложения. Предположительно, у вас есть настройка CakePHP для хеширования паролей на вашей пользовательской сущности, это не повлияет на столбец api_login_password.

1

Вам нужно использовать метод beforeSave.

// в модели

function beforeSave() 
{ 
    // put the conditions here 

return true; 
} 
+0

Он не используется, но спасибо –

Смежные вопросы