From 6a16e7cd24676f24b616b88dc9274cdca0f06224 Mon Sep 17 00:00:00 2001 From: Maxwell Gerber Date: Mon, 7 Apr 2025 15:15:28 -0700 Subject: [PATCH 1/3] fix: Disconnecting should clear oauth state --- client/src/lib/auth.ts | 6 ++++++ client/src/lib/hooks/useConnection.ts | 1 + 2 files changed, 7 insertions(+) diff --git a/client/src/lib/auth.ts b/client/src/lib/auth.ts index ba610bc..72d194e 100644 --- a/client/src/lib/auth.ts +++ b/client/src/lib/auth.ts @@ -68,6 +68,12 @@ class InspectorOAuthClientProvider implements OAuthClientProvider { return verifier; } + + clear() { + sessionStorage.removeItem(SESSION_KEYS.CLIENT_INFORMATION); + sessionStorage.removeItem(SESSION_KEYS.TOKENS); + sessionStorage.removeItem(SESSION_KEYS.CODE_VERIFIER); + } } export const authProvider = new InspectorOAuthClientProvider(); diff --git a/client/src/lib/hooks/useConnection.ts b/client/src/lib/hooks/useConnection.ts index bff01ce..667da77 100644 --- a/client/src/lib/hooks/useConnection.ts +++ b/client/src/lib/hooks/useConnection.ts @@ -361,6 +361,7 @@ export function useConnection({ const disconnect = async () => { await mcpClient?.close(); + authProvider.clear(); setMcpClient(null); setConnectionStatus("disconnected"); setCompletionsSupported(false); From 15960f5aa484f0bb656abe17d877fba9ad03d21d Mon Sep 17 00:00:00 2001 From: Maxwell Gerber Date: Wed, 16 Apr 2025 16:24:49 -0700 Subject: [PATCH 2/3] refactor: Use new serverspecifickey API --- client/src/lib/auth.ts | 6 +++--- client/src/lib/hooks/useConnection.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/client/src/lib/auth.ts b/client/src/lib/auth.ts index 39b489d..65650fd 100644 --- a/client/src/lib/auth.ts +++ b/client/src/lib/auth.ts @@ -90,8 +90,8 @@ export class InspectorOAuthClientProvider implements OAuthClientProvider { } clear() { - sessionStorage.removeItem(SESSION_KEYS.CLIENT_INFORMATION); - sessionStorage.removeItem(SESSION_KEYS.TOKENS); - sessionStorage.removeItem(SESSION_KEYS.CODE_VERIFIER); + sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.CLIENT_INFORMATION, this.serverUrl)); + sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.TOKENS, this.serverUrl)); + sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.CODE_VERIFIER, this.serverUrl)); } } diff --git a/client/src/lib/hooks/useConnection.ts b/client/src/lib/hooks/useConnection.ts index 8c5c009..73f2e1c 100644 --- a/client/src/lib/hooks/useConnection.ts +++ b/client/src/lib/hooks/useConnection.ts @@ -396,6 +396,7 @@ export function useConnection({ const disconnect = async () => { await mcpClient?.close(); + const authProvider = new InspectorOAuthClientProvider(sseUrl); authProvider.clear(); setMcpClient(null); setConnectionStatus("disconnected"); From 1345a50011976f155de2c1cd84d5da5b73742451 Mon Sep 17 00:00:00 2001 From: Maxwell Gerber Date: Wed, 16 Apr 2025 16:25:51 -0700 Subject: [PATCH 3/3] lint --- client/src/lib/auth.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/client/src/lib/auth.ts b/client/src/lib/auth.ts index 65650fd..7ef3182 100644 --- a/client/src/lib/auth.ts +++ b/client/src/lib/auth.ts @@ -90,8 +90,14 @@ export class InspectorOAuthClientProvider implements OAuthClientProvider { } clear() { - sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.CLIENT_INFORMATION, this.serverUrl)); - sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.TOKENS, this.serverUrl)); - sessionStorage.removeItem(getServerSpecificKey(SESSION_KEYS.CODE_VERIFIER, this.serverUrl)); + sessionStorage.removeItem( + getServerSpecificKey(SESSION_KEYS.CLIENT_INFORMATION, this.serverUrl), + ); + sessionStorage.removeItem( + getServerSpecificKey(SESSION_KEYS.TOKENS, this.serverUrl), + ); + sessionStorage.removeItem( + getServerSpecificKey(SESSION_KEYS.CODE_VERIFIER, this.serverUrl), + ); } }