Passport JS反序列化黑名单错误

时间:2019-05-09 02:21:30

标签: node.js passport.js

我正在将Nodejs与Passport.js一起使用。在localhost:3000上运行服务器后,我一直在获取

  

错误:无法反序列化用户退出会话

我在this Github线程上找到了解决方案。

passport.deserializeUser(function(obj, done) {
  done(null, false);  // invalidates the existing login session.
}); 

来自线程:

  

从现在开始,一旦出现反序列化错误   您实际上已被列入黑名单

这可能是我对会话的理解不佳,但是即使重新启动服务器,我也始终遇到上述错误。我在哪里被列入黑名单?不应该重新启动服务器会擦除所有服务器会话吗?

1 个答案:

答案 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
  });
});