2013-02-19 20 views
29

Kullanıcı adı ve şifre ile bir kullanıcı girişi yapmak için Passport.js kullanıyorum. Ben esas olarak Pasaport sitesinden örnek kodu kullanıyorum. İşte kodun ilgili bölümleri (Bence):Passport.js: kimlik doğrulamasından sonra kullanıcı nesnesine nasıl erişilir?

Doğru olarak görünüyor. Ancak, ben gibi kod diğer bölgelerinde giriş kullanıcının bilgilerini erişmek mümkün istiyorum: Ben SO diğer soruları kontrol ettiniz

app.get('/test', function(req, res){ 
    // How can I get the user's login info here? 
    console.log(req.user); // <------ this outputs undefined 
}); 

, ama ben ne yapıyorum emin değilim yanlış burada. Teşekkür ederim!

cevap

5

Pasaport orta kayıtlarını kaydetmeden önce req.session'u dolduran bir middleware kaydettiğinizden emin olmanız gerekir.

Örneğin şu express cookieSession middleware

app.configure(function() { 

    // some code ... 

    app.use(express.cookieParser()); 
    app.use(express.bodyParser()); 
    app.use(express.cookieSession()); // Express cookie session middleware 
    app.use(passport.initialize()); // passport initialize middleware 
    app.use(passport.session());  // passport session middleware 

    // more code ... 

}); 
+51

Bu destek kurulum kodu, kullanıcının nihayet oturumdan nasıl elde edildiğini göstermez. –

38

Geç partiye kullanır ama cevap kendim yaptığım andan bu cevapsız bulundu.

İstekte, birlikte çalışabileceğiniz bir req.user nesnesi olacaktır. şöyle

Yolları: böyle

app.get('/api/portfolio', passport.authenticate('jwt', { session: false }), stocks.buy); 

Kontrol: Passport documentation istinaden

buy: function(req, res) { 
     console.log(req.body); 
     //res.json({lel: req.user._id}); 
     res.json({lel: req.user}); 
    } 
+5

Daha doğru bir şekilde ele alındığı için bu doğru cevap olmalıdır ... Durum bilgisi olmayan bir REST API'sı durumunda, bu gitmek caydır ... –

+1

Yeniden oturum açtıktan sonra req.user tanımsız olarak görünürse? – Aspen

1

, kullanıcı nesne req.user bulunur. Aşağıya bakınız. Bu şekilde, kullanıcı nesnesine yönlendirdiğiniz sayfadan erişebilirsiniz.

Takılı kalmanız durumunda, bunu açıkça uygulayabildiğim my Github project adresine başvurabilirsiniz.

+0

Bu tam olarak aradığım şey! Req.user'a gerçekten nerede erişeceğimi asla çözemedim ve bu mükemmel bir şekilde özetliyor. Teşekkürler! – Rahul

İlgili konular