Я node.js и express.js noob. Этот вопрос может показаться глупым, но я действительно в замешательстве.
Я пытаюсь настроить аутентификацию Local Strategry с помощью passport. Как показано в официальной документации, мы можем определить эту локальную стратегию следующим кодом,
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);
});
}
));
Моя путаница связана с функцией обратного вызова done
. Когда официальные документы показывают эту локальную стратегию, использующую в качестве промежуточного программного обеспечения в обработчике маршрута, нет необходимости передавать параметр функции для этого обратного вызова done
.
app.post('/login',
passport.authenticate('local'),
function(req, res) {
res.redirect('/');
});
Итак, разве эта функция done
callback не будет равна null, если мы не предоставим параметр функции? Если нет, то какова функция done
callback и какие процессы будут выполняться в этой функции обратного вызова done
?