تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ میلاد رسولی
عدم تطابق رمز عبور وارد شده با رمز عبور در دیتابیس
جامعه نود جی اس ایجاد شده در ۰۲ اسفند ۱۳۹۹

سلام وقت بخیر. من در قسمت 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 - ممکنه در زمان انجام عملیات به کلمه عبور داده‌های اضافه بشه یا به صورت صحیح دریافت نشه و این باعث عدم تطبیق میشه.

 

حتما حتما مراحل رو دقیق و مو به مو یک بار از اول بررسی و اجرا کنید.

کیوان علی محمدی ۰۳ اسفند ۱۳۹۹، ۰۶:۲۴