护照会话可以与web套接字库(https://github.com/websockets/ws)一起工作吗?我们有一个常规的护照身份验证设置:但是request .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函数中。要求的事情。
是否在dev环境中?
如果你使用memorystore
会话,它会在应用程序重新加载后清理。你可以切换到session-file-store
,但它通常不存储在res.redirect()
在其他情况下,您必须检查会话是否在服务器上过期