, чтобы сохранить свой прогресс
Хеширование ваших паролей
Напомним, что этот проект строится на следующем стартовом проекте Glitch или клонируется из GitHub . Возвращаясь к разделу информационной безопасности, вы, возможно, помните, что хранение паролей с открытым текстом никогда не бывает в порядке. Теперь пришло время реализовать BCrypt для решения этой проблемы.
Добавьте BCrypt в качестве зависимости и требуйте его на своем сервере. Вам нужно будет обрабатывать хэширование в двух ключевых областях: где вы обрабатываете регистрацию / сохранение новой учетной записи и когда вы проверяете, что пароль правильный для входа. В настоящее время на нашем пути регистрации вы вводите пароль пользователя в базу данных следующим образом:
password: req.body.password
. Простым способом реализации сохранения хеша является добавление следующего до вашей логики базы данных var hash = bcrypt.hashSync(req.body.password, 12);
и заменяет req.body.password
в базе данных, сохраняя только password: hash
. Наконец, по нашей стратегии проверки подлинности мы проверяем следующее в нашем коде перед завершением процесса: if (password !== user.password) { return done(null, false); }
. После внесения предыдущих изменений теперь user.password
является хешем. Прежде чем вносить изменения в существующий код, обратите внимание на то, как оператор проверяет, не является ли пароль НЕ равным, а затем возвращает не аутентифицированный. Имея это в виду, ваш код может выглядеть следующим образом, чтобы правильно проверить введенный пароль против хэша: if (!bcrypt.compareSync(password, user.password)) { return done(null, false); }
Это все, что нужно для реализации одной из самых важных функций безопасности при хранении паролей! Представьте свою страницу, когда вы думаете, что у вас все в порядке./**
* Your test output will go here.
*/