2015-09-06 3 views
0

En utilisant le module Passport dans node.js Express, j'ai réussi à obtenir une redirection après que le visiteur se soit connecté via Facebook. Ce qui suit fait partie de mon code:Comment se souvenir de la session après s'être connecté via node.js Express Passport

app.use(passport.initialize()); 
app.use(passport.session()); 
passport.use(new FacebookStrategy({ 
    clientID: '999999999999999', 
    clientSecret: 'ffffffffffffffffffffffffffffffff', 
    callbackURL: 'https://xxxxxxxxx.com/auth/facebook/callback' 
}, function(accessToken, refreshToken, profile, done) { 
    process.nextTick(function() { 
    done(null, profile); 
    }); 
})); 
app.get('/auth/facebook', passport.authenticate('facebook')); 
app.get('/auth/facebook/callback', passport.authenticate('facebook', { 
    successRedirect: '/register?provider=facebook', 
    failureRedirect: '/', 
    failureFlash: true 
})); 
passport.serializeUser(function(user, done) {done(null, user);}); 
passport.deserializeUser(function(obj, done) {done(null, obj);}); 

Ma question est: comment se souvient-on de la session? Il ne semble pas y avoir un moyen de passer des valeurs hors de la fonction .nextTick(), je ne pourrais pas non plus enregistrer un cookie ...

Répondre

0

Je viens de réaliser que je dois initialiser cookieParser() et cookieSession() avant d'initialiser le passeport. Ensuite, nous pouvons accéder aux informations dans req.user dans le rappel successRedirect.