在护照登录中 req.logIn() 后获取空数组
Posted
技术标签:
【中文标题】在护照登录中 req.logIn() 后获取空数组【英文标题】:Getting empty Array after req.logIn() in passport login 【发布时间】:2015-08-05 07:01:41 【问题描述】:我正面临一种奇怪的行为,我试图进行两种登录,一种是密码,另一种是访客。在用户使用密码登录的情况下,Passport req.logIn() 工作正常。但是当我通过访客登录时,它在会话中设置了空数组。
让我告诉你我为存储数据提供了哪些详细信息。
如果是注册用户
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";
护照登录即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('/');
);
我无法调试为什么护照没有以正确的方式序列化我的访客用户信息。序列化有什么限制吗?
让我向您展示我的序列化和反序列化方法。
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);
);
【问题讨论】:
添加更多信息,例如如何显示设置以在框架上配置会话 【参考方案1】:我找到了解决方案。我错了
我用var User = ;
替换了var User = [];
,它成功了。
【讨论】:
以上是关于在护照登录中 req.logIn() 后获取空数组的主要内容,如果未能解决你的问题,请参考以下文章