Passport和bcrypt,在validPassword函数中不起作用

时间:2019-06-05 04:15:56

标签: javascript node.js passport.js

我正在开发一个应用程序,您有两个登录名。管理员之一,其他学生。这样一来,学生就可以在管理员必须创建帐户之前登录。

但是,当尝试比较cotrasnas时,某些操作失败,节点不会返回任何错误。但是,进行调试;该应用无法购买密码。

const estuSchema = new mongoose.Schema({
  estudiantes: {
    nombre: String,
    correo: String,
    ti: String,
    psicoEmail: String
  }


});

estuSchema.methods.validPassword = function (password) {
  return bcrypt.compareSync(password, this.estudiantes.ti);
};

module.exports = mongoose.model('Estudiantes', estuSchema);

在护照配置文件中,我有这个:

function (req, email, password, done) {

    Estudiantes.findOne({'estudiantes.correo': email}, function(err, estu){
      if(err) { return done(err) }


      if (!estu) {
        console.log("Error here, in unsername")
        return done(null, false, { message: 'Incorrect username.' });
      }
      if (!estu.validPassword(password)) {
        console.log("Error here, in passpword, the password is: " + password)
        return done(null, false, req.flash('loginMessage', 'Datos incorrectos'));
      }
      return done(null, estu)
    })
  }))

感谢您的帮助

0 个答案:

没有答案