PassportJS deserializeUser никогда не вызывается

Я установил Passport для аутентификации пользователей, хранящихся в mongodb. Кажется, работает нормально: аутентификация проходит успешно / неудачно и переменные сеанса устанавливаются. Однако получить паспорт для проверки сеанса не удается. Кажется, что-то не так в том, что операторы console.log, которые я добавил вdeserializeUser Обратный звонок никогда не увидит свет. Я предполагаю, что моя проблема связана сdeserializeUser никогда не вызывать. Кто-нибудь может диагностировать мою оплошность?

// Passport configuration
passport.serializeUser(function(user, cb){ cb(null, user.id) });
passport.deserializeUser(function(uid, cb){
  console.log("Trying to deserialize user: "+uid);
  User.findById(uid, function(err, user){
    cb(err, user);
  });
});
// auth strategy function
passport.use(new LocalStrategy({usernameField: 'email'},
  function(email, pass, done){
    User.findOne({email: email}, function (err, user) {
      if (err)
        return done(err);
      if (!user)
        return done(null, false, {message: "Couldn't find user"});
      var crypted = bcrypt.hashSync(pass, user.salt);
      if(user.hashpass != crypted)
        return done(null, false, {message: "Bad password"});
      return done(null, user);
    });
  }
));

passport.CreateSession =  function (req, res, next) {
  passport.authenticate('local', function(err, user, info){
    if(err || !user)
      return res.json({status: "Failure: "+err});
    req.logIn(user, function (err){
      if(err)
        return res.json({status: "Failure: "+err});
      return res.json({status: "Authenticated"});
    });
  })(req, res, next);
};

со следующим в app.js:

app.post('/session', passport.CreateSession); // restify better
app.del('/session', passport.DestroySession);
app.get('/images', passport.CheckSession, routes.images);

Ответы на вопрос(8)

Ваш ответ на вопрос