我正在尝试实施安全例程来验证密码。函数easyPbkdf2工作正常,但我需要返回有效的布尔值。请帮助不大,我的范围很麻烦。 提前谢谢。
userSchema.methods.verifyPassword = function(password) {
easyPbkdf2 = new EasyPbkdf2(options);
easyPbkdf2.verify(this.password_salt, this.password_hash, password, function(err, valid) {
console.log(valid);
});
return valid; // This doesn't work...[ReferenceError: valid is not defined]
}
答案 0 :(得分:0)
有效的是在easypbkdf2函数内部分配,但是你在函数中返回值,因此它没有被定义。您可能需要在您正在安慰的函数内返回有效值才能看到有效。如果它适合你,请告诉我
答案 1 :(得分:0)
EasyPbkdf2.verify()是异步的。返回不会起作用的价值。您需要传递回调函数才能返回值。像这样:
userSchema.methods.verifyPassword = function(password, callback) {
var easyPbkdf2 = new EasyPbkdf2(options);
easyPbkdf2.verify(this.password_salt, this.password_hash, password, callback);
};
// how to call it
userSchema.methods.verifyPassword(password, function(err, valid) {
if (err) {
// do something such as throwing error
}
console.log(valid);
});