Я только начал свое путешествие в Node.js и пытаюсь реализовать идею создания локальной стратегии для входа пользователя.
Я преследовал свои функции и тестировал их.с почтальоном.Теперь моя стратегия аутентификации висит, и я не могу понять, почему.
passport.use(new LocalStrategy(
function(username, password, done){
console.log(username) // <-- this doesn't log
User.findOne({userName: username}, function(err, user){
if(err) return done(err);
if(!user){
return done(null, false, {
message: 'Could not login with those details.'
});
}
if(!user.validPassword(password)) {
return done(null, false, {
message: 'Could not login with those details.'
});
}
return done(null, user);
})
}
))
Я сделал действительно элементарный почтовый запрос, который применяет аутентификацию.
app.post('/login', function(req, res){
console.log(req.body)
if(!req.body.userName || !req.body.password ) {
res.status(400),
res.json({"status" : "fail", "message" : "All fields
required"});
return;
}
passport.authenticate('local', function(err, User, info){
let token;
if(err){
res.status(400),
res.json({"status" : "fail", "message" : err});
return;
}
if(User){
token = User.generateJwt();
res.status(200);
res.json({"status" : "success", "token" : token });
}else{
res.status(401);
res.json({"status" : "fail", "message" : info });
}
})
})
Из чегоЯ вижу, что начальные проверки в порядке с пропущенными полями, но когда он достигает passport.authenticate
, он зависает и даже не попадает в мою определенную стратегию.
Я просматривал документацию иЯ уверен, что что-то здесь упускаю, но просто не вижу этого.Если кто-нибудь может указать мне правильное направление, я буду очень признателен.