首页 > 解决方案 > 如何在节点 js 中使用 Salt Hashing 实现用户身份验证

问题描述

我正在尝试为节点 js 中的用户注册实现盐哈希。用户登录需要访问存储的盐值。但我现在面临的挑战是:如何安全地存储盐值?

我也愿意更好地实施身份验证过程。谢谢

标签: node.js

解决方案


这是您可以按照注册的示例。

    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

}


推荐阅读