fix(server): only serialize required handshake attributes

In order not to include "auth" and other attributes like
"sessionStore", which is added by the "express-session" package.

Related: https://github.com/socketio/socket.io-admin-ui/issues/7
This commit is contained in:
Damien Arrachequesne 2021-06-02 09:10:12 +02:00
parent 99fa3ed1aa
commit 1cf991e49a
No known key found for this signature in database
GPG Key ID: 544D14663E7F7CF0
2 changed files with 21 additions and 2 deletions

View File

@ -346,7 +346,17 @@ const serialize = (
clientId, clientId,
transport, transport,
nsp, nsp,
handshake: socket.handshake, handshake: {
address: socket.handshake.address,
headers: socket.handshake.headers,
query: socket.handshake.query,
issued: socket.handshake.issued,
secure: socket.handshake.secure,
time: socket.handshake.time,
url: socket.handshake.url,
xdomain: socket.handshake.xdomain,
// ignore auth and other attributes like sessionStore
},
rooms: [...socket.rooms], rooms: [...socket.rooms],
}; };
}; };

View File

@ -262,7 +262,16 @@ describe("Socket.IO Admin (server instrumentation)", () => {
expect(socket.id).to.eql(serverSocket.id); expect(socket.id).to.eql(serverSocket.id);
expect(socket.nsp).to.eql("/"); expect(socket.nsp).to.eql("/");
expect(socket.handshake).to.eql(serverSocket.handshake); expect(socket.handshake).to.eql({
address: serverSocket.handshake.address,
headers: serverSocket.handshake.headers,
query: serverSocket.handshake.query,
issued: serverSocket.handshake.issued,
secure: serverSocket.handshake.secure,
time: serverSocket.handshake.time,
url: serverSocket.handshake.url,
xdomain: serverSocket.handshake.xdomain,
});
expect(socket.rooms).to.eql([...serverSocket.rooms]); expect(socket.rooms).to.eql([...serverSocket.rooms]);
// join // join