@JordanBelford

Почему функция compare не корректно работает?

Здравствуйте! Для шифрования пароля использовал библиотеку bcrypt. При сравнение пароля полученного от клиента и с бд, получаю пустой объект. Кто знает в чем может быть проблема?
router.post('/sign_in', [
        check('email', 'Введите корректный email').normalizeEmail().isEmail(),
        check('password', 'Введите корректный password').exists()
    ],
    async (req, res) => {
    try {
        const errors = validationResult(req);

        if (!errors.isEmpty()) {
            return res.send({message: 'Введены не корректные данные'});
        }

        const {email, password} = req.body;

        const user = await User.findOne({email});


        if (!user) {
            return res.send({message: 'Не правильно введен логин или пароль'});
        }

        const isMatchPassword = bcrypt.compare(password, user.password);

        if (!isMatchPassword) {
            return res.send({message: 'Не правильно введен логин или пароль'});
        }

        const token = jsonWebToken.sign(
            {userId: user.id},
        config.jwtSecretKey,
            {expiresIn: '1h'}
        );

        res.send({token, userId: user.id});

    } catch (e) {
        console.error(e.message);
    }
});
  • Вопрос задан
  • 42 просмотра
Решения вопроса 1
samodum
@samodum
Какой вопрос - такой и ответ
bcrypt не шифрует ничего! Это функция для вычисления хэша!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы