Passport.js и Mongoose.js заполняют пользователя при входе в систему -теряют заполненное поле в req.user

Используя Mongoose.js, мой метод аутентификации заполняет поле «companyRoles. _company», но заполненные данные возвращаются к идентификатору ссылки компании, когда я пытаюсь получить доступ к тому же заполненному полю в моем объекте req.user.

//Authentication 
UserSchema.static('authenticate', function(email, password, callback) {
  this.findOne({ email: email })
 .populate('companyRoles._company', ['name', '_id'])
   .run(function(err, user) {
      if (err) { return callback(err); }
      if (!user) { return callback(null, false); }
      user.verifyPassword(password, function(err, passwordCorrect) {
        if (err) { return callback(err); }
        if (!passwordCorrect) { return callback(null, false); }
        return callback(null, user);
      });
    });
});

//login post
app.post('/passportlogin', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err) }
    if (!user) { return res.redirect('/passportlogin') }
    req.logIn(user, function(err) {
      if (err) { return next(err); }
      console.log('req User');
      console.log(req.user); 
      return res.redirect('/companies/' + user.companyRoles[0]._company._id);
    });
  })(req, res, next);
});

app.get('/companies/:cid', function(req, res){
    console.log('req.user in companies:cid');
    console.log(req.user);   
});

После req.logIn журнал req.user показывает -companyRoles{ _company :[Object]}

Но когда я перенаправляюсь на маршрут /companies/:id после входа в систему, он показывает идентификатор, а не заполненный [объект] -CompanyRoles{ _Company :4fbe8b2513e90be8280001a5}

Любые идеи относительно того, почему поле не остается заполненным? Спасибо.

8
задан laggingreflex 6 January 2015 в 16:12
поделиться