Bcrypt 哈希密码与 Mongodb 中保存的密码哈希不同

Bcrypt hash password is not the same of password hash saved in Mongodb

我在密码中使用 bcrypt.hash,这个散列正常...但是当我用 mongoose 将这个散列密码保存在 mongodb 中时,这个当我对密码进行哈希处理时,密码不一样。

示例:

密码哈希:$2b$10$bUY/7mrZd3rp1S7NwaZko.ShDFj47rAfdGHG1QcQxGdtvzaDd.WH2

密码已保存mongo:$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,
},

我比较的时候,密码总是不相等

出现问题是因为我的用户模型有一个带有 bcrypt 哈希的 pre.("save"),这与 router.js

中的 bcrypt 哈希冲突