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/`;