سلام وقت بخیر. من در قسمت camparePassword به false میخورم در حالی که user هم پیدا کرده و رمز عبور وارد شده داخل لاگین با پسورد دیتابیس هم یکی هستش.
const userModel = require('@models/users');
const hashService = require('./hashServices')
exports.login = async(email,passwordPlain)=>{
const user = await userModel.findByEmail(email);
if(!user){
return false;
};
const{password} = user;
console.log({password})
return hashService.camparePassword(passwordPlain,password) ? user : false;
}
اینم قسمت hashservices
const bcrypt = require('bcrypt');
exports.hashPassword = plainPassword =>{
return bcrypt.hashSync(plainPassword,10)
};
exports.camparePassword = (plainPassword,hashedPassword)=>{
return bcrypt.compareSync(plainPassword,hashedPassword)
}
ممنون میشم راهنمایی کنید.
سلام خدمت شما. بخش comparePassword دقیقا توسط خود bcrypt داره انجام میشه پس قطعا یکی از حالت های زیر رخ داده:
1 - کلمه عبور شما مچ نیست و بهتره یک بار دیگه کلمه عبور داخل دیتابیس رو دقیق بررسی کنید.
2 - ممکنه در زمان انجام عملیات به کلمه عبور داده های اضافه بشه یا به صورت صحیح دریافت نشه و این باعث عدم تطبیق میشه.
حتما حتما مراحل رو دقیق و مو به مو یک بار از اول بررسی و اجرا کنید.