2012-07-09 12 views
10

Estoy usando una estrategia local de pasaporte para autenticar usuarios. Seguí la guía dada por Jared Hanson e instalé connect-flash para dar método flash al objeto de solicitud. Así que uno de mis controladores de solicitudes es el siguiente:nodejs + pasaporte + express 3.0 + connect-flash sin flasheo?

app.post('/login',        
     passport.authenticate('local', {   
      successRedirect: '/'     
     , failureRedirect: '/login'    
     , successFlash: 'Bienvenido'    
     , failureFlash: 'Credenciales no válidas'        
     })           
); 

Cuando el inicio de sesión de usuario falla, se redirige al usuario/login de nuevo pero, duerma parpadear nada:/

ACTUALIZACIÓN: utilizo mongodb para la sesión almacenamiento y veo esto:

> db.sessions.find() 
{ "_id" : "qZ2eiTnx6r9LR25JOz/TGhiJ", "session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"4ffb5b5db9cc16b615000001\"},\"flash\":{\"error\":[\"Credenciales no válidas\"],\"success\":[\"Bienvenido\"]}}" } 

Entonces los mensajes se insertan en el objeto de sesión pero no se extraen. ¿Debo hacer algo especial?

Respuesta

24

Supongo que está sacando los mensajes y representándolos en una vista? Algo como:

app.get('/login', function(req, res){ 
    res.render('login', { message: req.flash('error') }); 
}); 
+0

Ok! Realmente me perdí esto ... ¡me siento tan estúpido! Gracias Jared! – Dredok

+3

@Jared Me quedé atascado en este tema también. Creo que sería muy útil para este ejemplo en los documentos del pasaporte. –

+3

Sí, yo también. Creo que sería bueno tener esto en los documentos. –