与护照使用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); } */ });