这通常是由于将加密哈希与未加密的密码进行比较而导致的。在处理用户登录时,请确保您将用户输入的密码与该用户的加密哈希进行比较。以下是一个示例:
const { hashSync, compareSync } = require('bcrypt');
const password = 'mypassword';
const saltRounds = 10;
const hashedPassword = hashSync(password, saltRounds);
const loginSuccess = compareSync(password, hashedPassword);
console.log(loginSuccess); // 输出 true
在上面的示例中,我们使用bcrypt中的hashSync方法将用户密码哈希化,并将哈希值存储在数据库中。在用户登录时,我们使用bcrypt的compareSync方法将用户输入的密码与该用户的哈希值进行比较。如果比较成功,则我们将确认登录成功。请注意,在此示例中,我们使用saltRounds参数来设置加密时使用的加盐次数。这可以帮助增加哈希值的安全性。