2013-05-11 21 views
6

node.js ve auth için passport.js kullanarak basit bir uygulama yazıyorum.passport.js içinde serializeUser işlevi istek nesnesine erişme

serializeUser'deki request nesnesine erişebilir miyim?

Aslında oldukça basit
+0

Bu soruyu sormak istedim. [Şu anda bunu yapmak için bir yol var gibi görünüyor] (https://github.com/jaredhanson/passport/issues/111) ama maalesef aslında nasıl çalıştığını anlamak için pasaport ile o kadar iyi değilim. Birisi lütfen cevap veriniz 'req' 'passport.deserializeUser (işlev (id, bitti) '' – laggingreflex

cevap

1

Ben itriyum ve laggingreflex sorular biraz farklı olduğunu düşünüyorum:

Eğer kaynağın yetki ilgilenecek bir ekspres katman içine bunu yapmak zorunda istek nesnesi erişmek için:

itriyum cevaplamak için. Eğer req.user ile kullanıcı bilgilerini erişebilmeleri için

function authMethod(req, res, next) { 
    if (req.isAuthenticated()) 
    { 
     console.log(req.user); 
     return next(); 
    } 
    res.status(401).send({user:undefined}); 
} 
app.get('/',authMethod,function(req,response) 
{ 
    res.status(200).send("OK"); 
} 

yapılandırma hakkı yaptıysanız, Pasaport, isteğiniz nesnesine değişiklikler yapacağım. Üçüncü tarafın yetkisinin başarılı olup olmadığını kontrol etmek için req.isAuthenticated() yöntemine de sahipsiniz.

laggingreflex cevaplamak için: bu yöntemlerin (github açıklama bak) bir oturum içindeki kullanıcı bilgilerinin serileştirme başa yapılır çünkü passport.deserializeUser ve passport.serializeUser içindeki istek nesnesi erişemez

. Bu yöntemler bir nesne ve parametre olarak bir işlev alır. serializeUser'da ilk parametre, kullanıcı bilgilerinin serileştirileceği ve done işlevine (geri arama) ileteceğiniz bir nesnedir. deserializeUser'da, ilk parametre, tersine işlem yapmak zorunda olduğunuz serileştirilmiş bir nesnedir.

İlgili konular