как проверить, есть ли имя пользователя и пароль внутри базы данных (mongodb) - PullRequest
2 голосов
/ 11 ноября 2011

Я хочу сохранить имя пользователя и пароль в базе данных mongodb, а затем получить значения базы данных и проверить, существует ли имя пользователя и пароль в базе данных. Если он существует, я перенаправлю на другую страницу. Как я могу добиться этого с помощью узла. js и mongodb. Я могу хранить значения в базе данных. Но я запутался в том, как извлекать значения и сравнивать их со значениями, предоставленными в значениях полей формы. В mongodb нет метода, подобного fetchByName или чему-то подобному. Может кто-нибудь помочь мне с кодом.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Думаю, вам стоит взглянуть на исходный код 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 голос
/ 27 мая 2012

попробуйте использовать уже существующую библиотеку, например passport или everyauth . Есть и другие, погуглите их:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...