2012-07-09 26 views
10

Tôi đang sử dụng chiến lược hộ chiếu địa phương để xác thực người dùng. Tôi làm theo hướng dẫn được đưa ra bởi Jared Hanson và cài đặt kết nối flash để cung cấp cho phương pháp flash cho đối tượng req. Vì vậy, một trong những bộ xử lý yêu cầu của tôi là như sau:nodejs + passport + express 3.0 + connect-flash không nhấp nháy?

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

Khi người dùng đăng nhập thất bại, nó chuyển hướng người dùng đến/đăng nhập một lần nữa nhưng nó không nhấp nháy bất cứ điều gì:/

UPDATE: tôi sử dụng MongoDB cho phiên lưu trữ và tôi thấy điều này:

> 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\"]}}" } 

Vì vậy, thư được chèn vào đối tượng phiên nhưng chúng không được kéo ra. Tôi có nên làm gì đó đặc biệt không?

Trả lời

24

Tôi cho rằng bạn đang kéo các thư ra và hiển thị chúng trong chế độ xem? Một cái gì đó như:

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

Ok! Tôi thực sự đã bỏ lỡ điều này ... tôi cảm thấy rất ngu ngốc! Cảm ơn Jared! – Dredok

+3

@ Đã từng gặp vấn đề này. Tôi nghĩ rằng nó sẽ thực sự hữu ích cho ví dụ này trong tài liệu hộ chiếu. –

+3

Vâng tôi cũng vậy. Tôi nghĩ sẽ tốt hơn nếu có điều này trong tài liệu. –

Các vấn đề liên quan