From 1cf991e49a1e2b172acca40ca3d259dad9c22915 Mon Sep 17 00:00:00 2001 From: Damien Arrachequesne Date: Wed, 2 Jun 2021 09:10:12 +0200 Subject: [PATCH] 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 --- lib/index.ts | 12 +++++++++++- test/index.ts | 11 ++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/index.ts b/lib/index.ts index 57b924d..ea0e5c8 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -346,7 +346,17 @@ const serialize = ( clientId, transport, 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], }; }; diff --git a/test/index.ts b/test/index.ts index 6c420ee..76ed31e 100644 --- a/test/index.ts +++ b/test/index.ts @@ -262,7 +262,16 @@ describe("Socket.IO Admin (server instrumentation)", () => { expect(socket.id).to.eql(serverSocket.id); 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]); // join