与护照使用WebSocket

当有人打开WebSocket连接时,如何访问当前会话的护照login?

我发现了一个很好的项目expression,这似乎工作得很好

app.ws('/', function(ws, req) { ws.on('message', function(msg) { console.log('express-ws --- ', msg); }); console.log('socket', req.user); //current user == req.user }); 

但是,我怎样才能获得这个相同的信息与一个简单的WebSocket连接?

 var WebSocketServer = require('ws').Server, wss = new WebSocketServer({ port: 3001 }); wss.on('connection', function(socket){ //Where is the current user???? console.log('connection'); socket.on('message', function(message){ console.log('message received', message); }); }); 

(这第二个连接确实工作正常 – 但我不能为我的生活find任何方式从Passportlogin信息)

可以使用req.session.passport.user来代替使用req.session.passport.user来访问已authentication的用户ID。

 app.ws('/', function(ws, req) { ws.on('message', function(msg) { console.log('express-ws --- ', msg); }); console.log(ws.upgradeReq.session.passport.user); /* keys can be found like for(var key in ws.upgradeReq.session.passport){ console.log(key); } */ });