From 0da5bc2a2e6e8f39d97dbd4a3667bae2cea90c21 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Fri, 26 Sep 2025 13:26:46 -0600 Subject: [PATCH] refactor: streamline authorization header validation in useConnection hook --- client/src/lib/hooks/useConnection.ts | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/client/src/lib/hooks/useConnection.ts b/client/src/lib/hooks/useConnection.ts index fa03496d..d32c7ffa 100644 --- a/client/src/lib/hooks/useConnection.ts +++ b/client/src/lib/hooks/useConnection.ts @@ -400,12 +400,13 @@ export function useConnection({ // Use custom headers (migration is handled in App.tsx) let finalHeaders: CustomHeaders = customHeaders || []; + const isEmptyAuthHeader = (header: CustomHeaders[number]) => + header.name.trim().toLowerCase() === "authorization" && + header.value.trim() === "Bearer"; + // Check for empty Authorization headers and show validation error const hasEmptyAuthHeader = finalHeaders.some( - (header) => - header.enabled && - header.name.trim().toLowerCase() === "authorization" && - (!header.value.trim() || header.value.trim() === "Bearer"), + (header) => header.enabled && isEmptyAuthHeader(header), ); if (hasEmptyAuthHeader) { @@ -417,17 +418,7 @@ export function useConnection({ }); } - // Check if we need to inject OAuth token - // This handles both empty headers and default "Bearer " placeholder headers - const isEmptyAuthHeader = (header: CustomHeaders[number]) => - header.name.trim().toLowerCase() === "authorization" && - header.value.trim() === "Bearer"; - - const needsOAuthToken = - finalHeaders.length === 0 || - finalHeaders.some( - (header) => header.enabled && isEmptyAuthHeader(header), - ); + const needsOAuthToken = finalHeaders.length === 0 || hasEmptyAuthHeader; if (needsOAuthToken) { const oauthToken = (await serverAuthProvider.tokens())?.access_token;