From be43718260ecddd411c98236d26a96d3395cbcdd Mon Sep 17 00:00:00 2001 From: LukeGus Date: Wed, 13 May 2026 02:01:47 -0500 Subject: [PATCH] fix: host connections failing with "Authentication failed" --- src/backend/ssh/docker-console.ts | 6 ++++++ src/backend/ssh/terminal.ts | 6 ++++++ src/ui/desktop/apps/features/terminal/Terminal.tsx | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/backend/ssh/docker-console.ts b/src/backend/ssh/docker-console.ts index 6c93afaf..2532c69a 100644 --- a/src/backend/ssh/docker-console.ts +++ b/src/backend/ssh/docker-console.ts @@ -257,6 +257,12 @@ wss.on("connection", async (ws: WebSocket, req) => { } } + if (!token) { + const urlObj = new URL(req.url || "", "http://localhost"); + const qp = urlObj.searchParams.get("token"); + if (qp) token = qp; + } + if (!token) { ws.close(1008, "Authentication required"); return; diff --git a/src/backend/ssh/terminal.ts b/src/backend/ssh/terminal.ts index fb775493..90fa717d 100644 --- a/src/backend/ssh/terminal.ts +++ b/src/backend/ssh/terminal.ts @@ -432,6 +432,12 @@ wss.on("connection", async (ws: WebSocket, req) => { } } + if (!token) { + const urlObj = new URL(req.url || "", "http://localhost"); + const qp = urlObj.searchParams.get("token"); + if (qp) token = qp; + } + if (!token) { ws.close(1008, "Authentication required"); return; diff --git a/src/ui/desktop/apps/features/terminal/Terminal.tsx b/src/ui/desktop/apps/features/terminal/Terminal.tsx index 1e3524fd..5da64602 100644 --- a/src/ui/desktop/apps/features/terminal/Terminal.tsx +++ b/src/ui/desktop/apps/features/terminal/Terminal.tsx @@ -866,6 +866,10 @@ const TerminalInner = forwardRef( .replace(/^https?:\/\//, "") .replace(/\/$/, ""); baseWsUrl = `${wsProtocol}${wsHost}/ssh/websocket/`; + const storedJwt = localStorage.getItem("jwt"); + if (storedJwt) { + baseWsUrl += `?token=${encodeURIComponent(storedJwt)}`; + } } } else { baseWsUrl = `${getBasePath()}/ssh/websocket/`;