strategy nodejs node management example angularjs node.js express passport.js passport-local

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)