5
MYSQL에서 예외가 발생하는 경우를 제외하고는 MYSQL과 함께 LocalStrategy를 사용하고 있습니다 (테스트 완료 후 MYSQL 서버를 종료합니다). return done(error)
콜백 스레딩 예외 서버가 손상됩니다.passportjs 오류 콜백 예외가 발생했습니다.
passport.use(new LocalStrategy({usernameField: 'email', passwordField: 'password'},
function (email, password, done) {
db.User.find({where: {email: email}}).done(function (error, user) {
if(error) return done(error);
if (!user) return done(null, false, {message: 'unknown user'});
//validate password
if (user.password != password) {
return done(null, false, {message: 'invalid password'});
}
//all ok
return done(null, user);
});
}
));
그리고 예외 :
TypeError: Property 'next' of object #<Context> is not a function
at Context.actions.error
내가 잘못 뭐하는 거지 여기
내 코드의 조각? 감사!
는 편집 :
req._passport.instance.authenticate('local', function (err, user, info) {
if (err) return validator.emit('exception', err);
if (!user) {
validator.result.errors.push('Username and password combination not found.');
validator.emit('response');
} else {
req.login(user, function (error) {
if (error) return validator.emit('exception', error);
validator.emit('response');
});
}
})(req, res);
당신이 보여줄 수 끝에
next
을 놓친? – robertklep'authenticate' 코드를 추가했습니다. – SamSerious
오히려 hackish처럼 보이며 문제의 원인 일 수 있습니다. * "Custom Callbacks"*에 관한 부분 인 [이 페이지] (http://passportjs.org/guide/authenticate/)를보십시오. 'req._passport.instance.authenticate' 대신'passport.authenticate'를 사용합니다. – robertklep