我现在有
module.exports.comparePassword = function(candidatePassword, hash, callback) {
console.log(candidatePassword)
console.log(hash)
bcrypt.compare(candidatePassword, hash, function(err, ismatch) {
if(err) throw err;
callback(null, ismatch);
});
}
现在的日志是
Server is up on port 3000
Connection has been established
Sat Jan 13 2018 14:45:36 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:45:42 GMT+0000 (GMT): POST /users/login
testing1234
undefined
/Users/benbagley/Code/poetry-out-loud/models/user.js:101
if(err) throw err;
^
Error: Illegal arguments: string, undefined
at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
at Object.bcrypt.compare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
at Function.module.exports.comparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:100:10)
at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16
at process._tickCallback (internal/process/next_tick.js:150:11)
这里似乎显示了密码,但没有显示哈希值。
Original
您好,我收到以下错误,不知道是什么原因造成的
Message sent: <[email protected] /cdn-cgi/l/email-protection>
Preview URL: https://ethereal.email/message/WlVWjq0qIgpSmhJbWloWhUGTHAp3fWC4AAAAbOQTYPu-4HjQWkI0i1uv5Ds
Sat Jan 13 2018 14:24:05 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:24:24 GMT+0000 (GMT): POST /users/login
/Users/benbagley/Code/poetry-out-loud/models/user.js:99
if(err) throw err;
^
Error: Illegal arguments: string, undefined
at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
at Object.bcrypt.compare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
at Function.module.exports.comparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:98:10)
at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16
正在创建用户,我只是无法登录。
这是导致错误的行
module.exports.comparePassword = function(candidatePassword, hash, callback) {
bcrypt.compare(candidatePassword, hash, function(err, ismatch) {
if(err) throw err;
callback(null, ismatch);
});
}
这是护照的实施
passport.use(new LocalStrategy({
usernameField: 'email'
},
function(email, password, done) {
User.getUserByEmail(email, function(err, user){
if(err) throw err;
if(!user){
return done(null, false, {message: 'Unknown Email Address'});
}
User.comparePassword(password, user.password, function(err, ismatch){
if(err) throw err;
if(ismatch){
return done(null, user);
} else {
return done(null, false, {message: 'Invalid password'});
}
});
});
}));