angularjs - nodejs - La devolución de llamada personalizada de la estrategia local Passport js muestra al usuario como falso y la información como "Credenciales faltantes"
passport-jwt (2)
Use { usernameField: ''email'' }
not { usernameField: ''Email'' }
porque envía req.body.email
not req.body.Email
Estoy usando Node.js, angularjs, express y pasaporte. He intentado todas las opciones que puedo pensar, pero todavía no hay solución. No se pudo encontrar una solución de otras publicaciones para este problema.
app.post(''/login'', function(req, res, next) {
console.log(req.body.Email);
console.log(req.body.Password);
passport.authenticate(''local'', function(err, user, info) {
console.log(err,user,info);
...
En lo anterior, req.body se muestra correcto en la consola pero en el pasaporte de autenticación muestra nulo, falso e información como credenciales faltantes.
He utilizado lo siguiente para el puerto de pase
passport.use(new LocalStrategy({ usernameField: ''Email'' }, (Email, Password, done) => {
console.log(Email, Password, done);
User.findOne({ Email: Email.toLowerCase() }, (err, user) => {
console.log(err);
if (err) { return done(err); }
if (!user) {
return done(null, false, { msg: `Email ${Email} not found.` });
}
user.ComparePassword(Password, (err, isMatch) => {
if (err) { return done(err); }
if (isMatch) {
return done(null, user);
}
return done(null, false, { msg: ''Invalid email or password.'' });
});
});
}));
passport.serializeUser((user, done) => {
// console.log(user, done);
done(null, user.id);
});
passport.deserializeUser((id, done) => {
User.findById(id, (err, user) => {
done(err, user);
});
});
No pude entender por qué existe el problema.
¿Alguien sabe lo que me falta aquí?!?!
¡Gracias!
Agregando hasta kaxi respuesta que he hecho para resolver este error agregando campo de contraseña en la estrategia local de pasaporte como se muestra a continuación
passport.use(new LocalStrategy({ usernameField: ''Email'',passwordField: ''Password'' }, (Email, Password, done)
en lugar de
passport.use(new LocalStrategy({ usernameField: ''Email'' }, (Email, Password, done)