与websocket服务器库的护照会话

时间:2016-09-20 19:48:14

标签: node.js websocket passport.js

预计护照会话是否可以与Web套接字库(https://github.com/websockets/ws)一起使用?我们有一个常规的护照身份验证设置:但req.session.user有时会在websocket请求中正确显示,有时则不会。

我们正在初始化websocket:

this.wss = new WebSocketServer({
  server: this.server, // This is the express app
  verifyClient: function(info, done) {
    self.session_parser(info.req, {}, function() {
      console.log('VERIFY ', info.req.session);
      // allow connection only if session is valid and a user is logged in
      done(info.req.session && info.req.session.passport &&
        info.req.session.passport.user &&
        info.req.session.passport.user.id);
    });
  }
});

问题是info.req.session.user正确显示某些Web套接字请求,有时它不在verifyClient函数中。 req.session总能正确显示。

1 个答案:

答案 0 :(得分:0)

它在开发环境中吗?

如果您使用memorystore会话,则在重新加载应用程序后将其清除。您可以切换到session-file-store,但通常不会存储在res.redirect()

在其他情况下,您必须检查会话在服务器上没有过期。