From 82318049af08b1fec17558b6ac29c2c43c86738d Mon Sep 17 00:00:00 2001 From: johnny Date: Thu, 24 Sep 2026 13:53:54 +0300 Subject: [PATCH] fix(realtime): omit null token from anonymous socket handshake --- src/utils/socket-utils.ts | 7 ++++--- tests/unit/socket-utils.test.ts | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/utils/socket-utils.ts b/src/utils/socket-utils.ts index e05f150c..db8fd263 100644 --- a/src/utils/socket-utils.ts +++ b/src/utils/socket-utils.ts @@ -43,11 +43,12 @@ function initializeSocket( // conversations (mirrors the X-Base44-Anonymous-Id HTTP header). Authenticated // clients are identified by their token instead. const resolvedToken = config.token ?? getAccessToken(); - const query: Record = { + const query: Record = { app_id: config.appId, - token: resolvedToken, }; - if (!resolvedToken) { + if (resolvedToken) { + query.token = resolvedToken; + } else { query.anonymous_id = getAnalyticsSessionId(); } diff --git a/tests/unit/socket-utils.test.ts b/tests/unit/socket-utils.test.ts index 2d58f294..3dc9cea4 100644 --- a/tests/unit/socket-utils.test.ts +++ b/tests/unit/socket-utils.test.ts @@ -21,7 +21,7 @@ vi.mock("socket.io-client", () => ({ })); vi.mock("../../src/utils/auth-utils.ts", () => ({ - getAccessToken: vi.fn(() => undefined), + getAccessToken: vi.fn(() => null), })); vi.mock("../../src/modules/analytics.ts", () => ({ @@ -61,7 +61,7 @@ describe("RoomsSocket", () => { const query = lastHandshakeQuery(); expect(query.app_id).toBe("test-app-id"); expect(query.anonymous_id).toBe("anon-session-123"); - expect(query.token).toBeUndefined(); + expect(query).not.toHaveProperty("token"); }); test("sends the token and no anonymous_id when authenticated", () => {