Node.js Socket.io和Passport-在套接字连接上获取Passport用户ID?
本质上,我想获取连接到socket.io的用户的用户ID 如果用户没有登录,我将忽略套接字连接请求——否则我将在redis中存储Passport用户ID和套接字连接IDNode.js Socket.io和Passport-在套接字连接上获取Passport用户ID?,node.js,sockets,Node.js,Sockets,本质上,我想获取连接到socket.io的用户的用户ID 如果用户没有登录,我将忽略套接字连接请求——否则我将在redis中存储Passport用户ID和套接字连接ID 那么,我的问题是:如何从套接字对象获取Passport用户?关于如何使用socket.IO实现身份验证的很好的解释,您读过了吗 考虑到解决此问题的现有库不能与当前版本的Socket.io一起使用,我决定采用以下方法: 我正在使用MongoStore作为会话存储: var sid = cookie.parse(socket.han
那么,我的问题是:如何从套接字对象获取Passport用户?关于如何使用socket.IO实现身份验证的很好的解释,您读过了吗 考虑到解决此问题的现有库不能与当前版本的Socket.io一起使用,我决定采用以下方法: 我正在使用MongoStore作为会话存储:
var sid = cookie.parse(socket.handshake.headers.cookie)['connect.sid'];
sessionStore.get(sid.split('.')[0].split(':')[1], function (err, session) {
if (session.passport.user) {
console.log('io found user logged in');
} else {
console.log('io found no user');
}
})
如果我发现用户已登录,我将在Redis中存储他们的userID和socket.io连接信息。当我需要向用户推送通知时,我将查询redis以获取他们的用户ID,并根据我找到的套接字ID发出通知。当用户断开连接时,我将删除其用户ID的条目。断开的链接,此页面不再存在