2017-10-04 2 views
-2

Je me demande ce que fait le rappel faire dans le code suivant. Est-ce le moyen d'extraire le message de jwt payload? Renvoie-t-il user dans ce scénario? Si oui, comment puis-je accéder à cet utilisateur retourné? Où est-il stocké?nodejs - passeport fait rappeler

module.exports = function(passport) { 
    var opts = {}; 
    opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken(); 
    opts.secretOrKey = config.secret; 
    passport.use(new JwtStrategy(opts, function(jwt_payload, done) { 
    User.findOne({id: jwt_payload.id}, function(err, user) { 
     if (err) { 
     return done(err, false); 
     } 
     if (user) { 
     done(null, user); 
     } else { 
     done(null, false); 
     } 
    }); 
    })); 
}; 

Répondre

1

fait est une méthode appelée en interne par l'implémentation de la stratégie.

Ensuite, il vous guide, à l'une des trois méthodes, success/error/fail. Toutes ces options peuvent appeler next.

Lorsque success est appelé, il peut joindre l'utilisateur à la demande ou faire d'autres choses, en fonction de vos besoins

Lire le lien ci-dessous pour une compréhension complète:

https://github.com/jaredhanson/passport-local/blob/master/lib/strategy.js#L80

+0

Merci @ Kevin RED. Mais comment puis-je accéder à l'argument 'user' passé au succès? –

+0

Je veux dire, vous utilisez done (null, user). C'est la méthode de succès appelée. Vous obtenez votre utilisateur une fois que c'est un succès. Dans d'autres cas, disons erreur, vous passez une fausse méthode. Si son utilité et complète s'il vous plaît upvote et marquer ce poste comme complet –