在passport login中的req.logIn()之后获得空数组

我正面临一个奇怪的行为,我试图做两种types的login,一个用密码和其他作为访客。 护照req.logIn()在用户用密码login的情况下正常工作。 但是当我通过guestlogin时,它会在会话中设置空数组。

让我告诉你什么细节我给护照存储的数据。

在注册用户的情况下

var User = []; User['email'] = "email@domain.com"; User['id_customer'] = "1"; User['id_user'] = "1"; User['other_info'] = "xyz"; User['other_info'] = "xyz"; User['other_info'] = "xyz"; User['other_info'] = "xyz"; 

现在是来宾用户的情况

 var User = []; User['email'] = "email@domain.com"; User['id_guest'] = "1"; User['other_info'] = "xyz"; 

护照login即req.logIn()

 req.logIn(user, function(err) { if (err) { if(err instanceof Error) { sails.log.debug(err.stack); } else { sails.log.debug(err); } res.redirect('index/error'); } if (req.xhr) { return res.send({ "success": 1, "message": info.message, "user": user }); } else { res.redirect('/'); } }); 

我无法debugging为什么护照不正确序列化我的访客用户信息。 序列化中是否有任何约束

让我告诉你我的序列化和反序列化方法。

 passport.serializeUser(function(user, done) { // saving Complete User Object in session CouchBase instead of saving done(null, user); }); passport.deserializeUser(function(user, done) { // Getting complete User Object from Couchbase as placed in req for each request done(null, user); }); 

我find了解决scheme。 我犯了一个错误

我更换了var User = [];var User = {}; 它的工作。