Estoy tratando de iniciar sesión en el usuario con autenticación de pasaporte.js y, si tengo éxito, redirijo al usuario a la última página que proviene de una variable dentro de la página de inicio de sesión, y si falla, vuelvo a presentar la página de inicio de sesión con un mensaje, traté de lo hago pero fallo, aquí lo que hice:
router.post('/login', body('backurl').trim().escape(), (req,res,next) =>{ passport.authenticate('local', (err,user)=>{ if(err){return next(err)} if(!user){ return res.render('login', {message: 'Unable to login, the password or the username are wrong'}) } if(req.body.backurl == null){ return res.redirect('/yourcourses') } return res.redirect(req.body.backurl) }); } );simplemente sigue cargándose sin cesar y no sale nada, ¿qué pasa con mi código?
¡Gracias!
Parece que no puedo encontrar una referencia definitiva para passport.authenticate . autenticar, pero todos los ejemplos en https://www.passportjs.org/concepts/authentication/ lo muestran como un middleware, así que creo que necesitará usarlo como tal:
router.post('/login', passport.authenticate('local'), (req, res, next) => { req.body('backurl').trim().escape(); if (!req.user) { return res.render('login', { message: 'Unable to login, the password or the username are wrong' }); } if (req.body.backurl == null) { return res.redirect('/yourcourses'); } return res.redirect(req.body.backurl); } );