[Error: data and hash arguments required]
ノード アプリ内でユーザーの既存のパスワードを確認しようとすると、エラーが発生します。コンテキストは、ユーザー プロファイル ページ内でパスワードを変更する前に、既存のパスワードを確認するようにユーザーに依頼することです。私のスタックは node + mondodb (mongoose 経由) で、passport-local と bcrypt を使用しています。
関連するコードは次のとおりです。
// code trying to match that returns the aforementioned error
req.user.comparePassword(req.body.password, function (err, isMatch) {
if (err) {
return console.error(err);
}
if (isMatch) {
console.log('passwords match');
// now save new password
// Password verification
userSchema.methods.comparePassword = function (candidatePassword, cb) {
bcrypt.compare(candidatePassword, this.password, function (err, isMatch) {
if (err) return cb(err);
cb(null, isMatch);
});
};
}
}
req.user
現在のユーザー オブジェクトを参照し、「req.body.password」はユーザーの POST から取得したパスワードです。ここでは、passport-local の例の UserSchema、passport 戦略、および Bcrypt 構成を使用しています。
更新前にパスワードが一致することを確認する方法について、誰かがガイダンスを提供できますか?