Я пытаюсь выяснить, как солить и хешировать пароль в nodejs, используя крипто-модуль. Я могу создать хешированный пароль, делая это:
UserSchema.pre('save', function(next) {
var user = this;
var salt = crypto.randomBytes(128).toString('base64');
crypto.pbkdf2(user.password, salt, 10000, 512, function(err, derivedKey) {
user.password = derivedKey;
next();
});
});
Однако я смущен тем, как позже проверить пароль.
UserSchema.methods.validPassword = function(password) {
// need to salt and hash this password I think to compare
// how to I get the salt?
}