Install bcryptjs
npm i bcryptjs
Task Objective: Saving passwords in plain text is BAD practice.
- Encrypt the password and save it in DB.
const bcrypt = require('bcryptjs');
class Util {
static async getHashPassword(password){
return await bcrypt.hash(password, 10)
}
static async comparePassword(plainText,hashPassword) {
return await bcrypt.compare(plainText, hashPassword)
}
}
Task 1: During Registration, convert the plain text password to encrypted password.
async function register(){
let user={name:"Naresh", "email":"n@gmail.com" ,password:"pass123"};
console.log(user);
let encryptedPassword= await Util.getHashPassword(user.password);
console.log(encryptedPassword);
}
register();
Task 2: During Login, convert the plain input text password to encrypted password.
async function login(){
let user = {email:"n@gmail.com", password: "pass123"};
let plainPassword = user.password;
let encrytedPasswordInDB = "$2a$10$mytiXZCF0qwpgxppdJs2r.GRfp.8nCcbQgoV3XL7IXueXwjnTlooe";
let matched= await Util.comparePassword(plainPassword,encrytedPasswordInDB);
console.log("Login Password Matched :" , matched);
}
login ();
Login Password Matched : true