From 5e5e4a850c1a779012b9644181cc805655964ee1 Mon Sep 17 00:00:00 2001 From: Stephen Glass Date: Tue, 8 Oct 2024 09:25:02 -0400 Subject: [PATCH] fix redirect error encoding Signed-off-by: Stephen Glass --- .../core-components/src/layout/SignInPage/SignInPage.tsx | 2 +- packages/core-components/src/layout/SignInPage/providers.tsx | 5 +---- plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts | 4 +--- plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts | 2 +- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/core-components/src/layout/SignInPage/SignInPage.tsx b/packages/core-components/src/layout/SignInPage/SignInPage.tsx index 8e1249f83e..c3139f9316 100644 --- a/packages/core-components/src/layout/SignInPage/SignInPage.tsx +++ b/packages/core-components/src/layout/SignInPage/SignInPage.tsx @@ -167,7 +167,7 @@ export const SingleSignInPage = ({ useMountEffect(() => { if (errorParam) { - setError(new Error(decodeURIComponent(errorParam))); + setError(new Error(errorParam)); } login({ checkExisting: true }); }); diff --git a/packages/core-components/src/layout/SignInPage/providers.tsx b/packages/core-components/src/layout/SignInPage/providers.tsx index 9cb2fa3c9f..c1c3b744c1 100644 --- a/packages/core-components/src/layout/SignInPage/providers.tsx +++ b/packages/core-components/src/layout/SignInPage/providers.tsx @@ -101,10 +101,7 @@ export const useSignInProviders = ( const errorParam = searchParams.get('error'); if (errorParam) { errorApi.post( - new ForwardedError(t('signIn.loginFailed'), { - name: 'Error', - message: decodeURIComponent(errorParam), - }), + new ForwardedError(t('signIn.loginFailed'), new Error(errorParam)), ); } }); diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index e2155df444..edf816cbee 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -768,9 +768,7 @@ describe('createOAuthRouteHandlers', () => { // Verify that the 'error' search param is set with the encoded error message const errorMessage = redirectUrl.searchParams.get('error'); - expect(errorMessage).toBe( - encodeURIComponent('Auth response is missing cookie nonce'), - ); + expect(errorMessage).toBe('Auth response is missing cookie nonce'); }); }); }); diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index 46f8fc3eca..53ae4101d3 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -252,7 +252,7 @@ export function createOAuthRouteHandlers( if (state?.flow === 'redirect' && state?.redirectUrl) { const redirectUrl = new URL(state.redirectUrl); - redirectUrl.searchParams.set('error', encodeURIComponent(message)); + redirectUrl.searchParams.set('error', message); // set the error in a cookie and redirect user back to sign in where the error can be rendered res.redirect(redirectUrl.toString());