Mongoose сравнивает BCRYPT пароли не заполнены - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь добавить bcrypt в модель мангуста, используя машинопись.Я использую эту ссылку в качестве примера.

Но мой проект использует машинопись, поэтому я не могу полностью использовать тот же код.Я не понимаю, откуда они берут пароль для сопоставления с паролем отправки пользователя.

Когда я сравниваю пароли, кажется, что один из паролей не определен.Ниже приведен мой код, любая помощь приветствуется.

 PersonTestSchema.pre<PersonTestModel>('save', function (next) {
  const user = this;
  if (this.password && this.password.length > 4) {
    bcrypt.genSalt(10, function (err, salt) {
      bcrypt.hash(user.password, salt, (err, hash) => {
        user.password = hash;
        next();
      });
    });
  } else {
    next();
  }
});

PersonTestSchema.methods.verifyPassword = function (candidatePassword: string) {
  const user = this;
  return bcrypt.compareSync(candidatePassword, user.password);

Когда я регистрирую пароль кандидата, он заполняется, но если я регистрирую пароль user.password, он пуст.Это кажется логичным в моем коде, но я не понимаю, откуда они берут его в своем примере кода.

1 Ответ

0 голосов
/ 04 февраля 2019

Я понял это.Оказывается, мне пришлось изменить их версию файла passportConfig, и лучшим способом было передать пароль от БД оттуда

...