Qu'est-ce que “fait” fonction de rappel dans le Passeport de la Stratégie de Configurer “utilisation de la fonction”
Je suis un node.js et express.js noob. Cette question peut paraître stupide, mais je suis vraiment dans la confusion.
Je suis en train de configurer Local Strategry authentification à l'aide d' passeport. Comme indiqué dans la documentation officielle, on peut comprendre cette Stratégie Locale par le code suivant,
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return done(null, user);
});
}
));
Ma confusion est à propos de la done
fonction de rappel. Lorsque le représentant de l'docs montrer cette stratégie locale en utilisant comme un middleware dans le gestionnaire d'itinéraire, il n'est pas nécessaire de passer le paramètre de la fonction pour cette done
de rappel.
app.post('/login',
passport.authenticate('local'),
function(req, res) {
res.redirect('/');
});
Donc, n'est-ce pas done
fonction de rappel sera nulle si nous n'offrons pas le paramètre de la fonction? Si non, qu'est ce que done
fonction de rappel et ce processus va se passer dans cette done
fonction de rappel?
OriginalL'auteur Steve.NayLinAung | 2015-08-22
Vous devez vous connecter pour publier un commentaire.
done
est une méthode appelée en interne par la mise en œuvre de la stratégie.Alors qu'il navigue à vous, comme vous pouvez le voir, à l'un des
success
/error
/fail
méthodes (encore une fois, par la mise en œuvre. il y a plus d'options).Chacune de ces options peut appels à la
next
, lorsque, dans votre extrait de code est le suivant:Quand
success
est appelé, elle peut se fixer à l'utilisateur de la demande ou faire d'autres choses, en fonction de vos besoins (il semble pour leoptions
vous passez àpassport.authenticate
). Si vous souhaitez déterminer sinext
sera appelé, vous devez utilisercallback personnalisé
qui vous donne plus de flexibilité.Je vous recommande fortement de lire la source.
passportjs la documentation des besoins majeurs d'amélioration
OriginalL'auteur Roy Miloh