如何检查数据库中是否存在用户名和密码(mongodb)

时间:2011-11-11 06:35:39

标签: mongodb node.js express mongoose

我想在mongodb数据库中存储用户名和密码,然后检索数据库值并检查数据库中是否存在用户名和密码。如果确实存在,那么我将重定向到另一个页面。如何使用节点实现此目的。 js和mongodb。我能够将值存储在数据库中。但是对如何获取值并根据表单字段值中提供的值检查它们感到困惑。在mongodb中没有像fetchByName或类似的方法。 有人可以帮我解决问题。

2 个答案:

答案 0 :(得分:3)

我认为您应该查看Nodepad源代码,它解释了如何使用Mongoose实现此目的:

  User.virtual('password')
    .set(function(password) {
      this._password = password;
      this.salt = this.makeSalt();
      this.hashed_password = this.encryptPassword(password);
    })
    .get(function() { return this._password; });

  User.method('authenticate', function(plainText) {
    return this.encryptPassword(plainText) === this.hashed_password;
  });

  User.method('makeSalt', function() {
    return Math.round((new Date().valueOf() * Math.random())) + '';
  });

  User.method('encryptPassword', function(password) {
    return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
  });

  User.pre('save', function(next) {
    if (!validatePresenceOf(this.password)) {
      next(new Error('Invalid password'));
    } else {
      next();
    }
  });

答案 1 :(得分:1)

尝试使用现有的库,例如passporteveryauth。还有其他的,谷歌他们:))