我正在将Nodejs与Passport.js一起使用。在localhost:3000
上运行服务器后,我一直在获取
错误:无法反序列化用户退出会话
我在this Github线程上找到了解决方案。
passport.deserializeUser(function(obj, done) {
done(null, false); // invalidates the existing login session.
});
来自线程:
从现在开始,一旦出现反序列化错误 您实际上已被列入黑名单
这可能是我对会话的理解不佳,但是即使重新启动服务器,我也始终遇到上述错误。我在哪里被列入黑名单?不应该重新启动服务器会擦除所有服务器会话吗?
答案 0 :(得分:0)
你应该这样做
passport.serializeUser(function (user, done) {
// this user is from your passport strategy
// for example: https://github.com/jaredhanson/passport-local#user-content-configure-strategy
// the data you give will store into session
done(null, user._id);
});
passport.deserializeUser(function (id, done) {
// the id is from session which store by serializeUser function
// this function should varify user and return its data to passport
// when passport jobs done
// you can access user data from req.user in express; ctx.state.user in koa
1User.findById(id, function (err, user) {
done(err, user); // if user is null, will block user
});
});