Как реализовать аутентификацию пользователя с использованием хэширования соли в узле js

#node.js

Вопрос:

Я пытаюсь реализовать хэширование соли для регистрации пользователей в узле js. Для входа в систему пользователю необходимо иметь доступ к сохраненному значению соли. но сейчас передо мной стоит задача: как безопасно хранить значение соли ?

Я также открыт для лучшей реализации процесса аутентификации. Спасибо

Ответ №1:

Это пример, которому вы можете следовать При регистрации.

     import bcrypt from 'bcryptjs';

export const insertUserAsOwner = async (addOwnerDto) => {
    const tempPassword = generateRandomString(8);    
    const hashedPassword = await bcrypt.hash(tempPassword, bcrypt.genSaltSync(10));
    const user = new Users();
    user.firstName = addOwnerDto.firstName;
    user.lastName = addOwnerDto.lastName;
    user.username = addOwnerDto.username;
    user.password = hashedPassword;
    user.typeOfUser = 'owner';
    user.business = business;
    const savedUser = await user.save();
}
 

Для Входа в Систему

 import bcryptjs from 'bcryptjs';

const validate = async(password) =>{

const user = await Users.findOne({username: 'someusername'});
const hashedPassowrd = user.password;
    const isValid = await bcryptjs.compare(password, hashedPassword);
if(isValid) return true;    
return false
 

}