Пароль хеша Bcrypt не совпадает с паролем хеша, сохраненным в Mongodb - PullRequest
0 голосов
/ 03 мая 2019

Я использую bcrypt.hash в пароле, и этот хэш нормальный ... но когда я сохраняю этот хешированный пароль в mongodb с mongoose, это не тот же пароль, когда я хэширую пароль.

Пример:

хэш пароля: $ 2b $ 10 $ bUY / 7mrZd3rp1S7NwaZko.ShDFj47rAfdGHG1QcQxGdtvzaDd.WH2

пароль сохранен монго: $ 2b $ 10 $ fOLYjjib7ycRbq7BqzNdMuPNbTPjMIVAZ1QQzBvX5cMEhi6rERjJK

Мой регистрационный код пользователя:

req.body.password = await bcrypt.hash(req.body.password, 10);
    const user = await User.create(req.body);
    Logs.logRequest(item.path, { item });
    user.password = undefined;

    return res.status(201).send({
        user,
        token: await createToken(user),
});

Мой логин, код пользователя:

const passOk = await bcrypt.compare(password, user.password);
    if (!passOk) {
    Logs.logError(item.path, {
        ...item,
        error: "Error",
});

Мой пароль в схеме пользователя:

password: {
    type: String,
    required: true,
    select: false,
},

Когда я сравниваю, пароль всегда не равен

1 Ответ

0 голосов
/ 03 мая 2019

Проблема возникает из-за того, что в моей модели User есть pre ("save") с хэшем bcrypt, и это противоречит хешу bcrypt в router.js

...