From bde8e443d6e2dabb2ef4540ad5d1b05288099642 Mon Sep 17 00:00:00 2001 From: Dylan Staley <88163+dstaley@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:29:32 -0800 Subject: [PATCH 1/2] fix(clerk-js): Use authQueryString when building callback URLs --- packages/clerk-js/src/ui/contexts/components/SignIn.ts | 9 ++++++--- packages/clerk-js/src/ui/contexts/components/SignUp.ts | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/packages/clerk-js/src/ui/contexts/components/SignIn.ts b/packages/clerk-js/src/ui/contexts/components/SignIn.ts index fed4ad6e959..0bf148a99a5 100644 --- a/packages/clerk-js/src/ui/contexts/components/SignIn.ts +++ b/packages/clerk-js/src/ui/contexts/components/SignIn.ts @@ -82,17 +82,20 @@ export const useSignInContext = (): SignInContextType => { signInUrl = buildURL({ base: signInUrl, hashSearchParams: [queryParams, preservedParams] }, { stringify: true }); signUpUrl = buildURL({ base: signUpUrl, hashSearchParams: [queryParams, preservedParams] }, { stringify: true }); waitlistUrl = buildURL({ base: waitlistUrl, hashSearchParams: [queryParams, preservedParams] }, { stringify: true }); + + const authQueryString = redirectUrls.toSearchParams().toString(); + const emailLinkRedirectUrl = buildRedirectUrl({ routing: ctx.routing, baseUrl: signUpUrl, - authQueryString: '', + authQueryString, path: ctx.path, endpoint: isCombinedFlow ? '/create' + MAGIC_LINK_VERIFY_PATH_ROUTE : MAGIC_LINK_VERIFY_PATH_ROUTE, }); const ssoCallbackUrl = buildRedirectUrl({ routing: ctx.routing, baseUrl: signUpUrl, - authQueryString: '', + authQueryString, path: ctx.path, endpoint: isCombinedFlow ? '/create' + SSO_CALLBACK_PATH_ROUTE : SSO_CALLBACK_PATH_ROUTE, }); @@ -121,7 +124,7 @@ export const useSignInContext = (): SignInContextType => { signUpContinueUrl, queryParams, initialValues: { ...ctx.initialValues, ...initialValuesFromQueryParams }, - authQueryString: redirectUrls.toSearchParams().toString(), + authQueryString, isCombinedFlow, }; }; diff --git a/packages/clerk-js/src/ui/contexts/components/SignUp.ts b/packages/clerk-js/src/ui/contexts/components/SignUp.ts index b34ce7a8171..6cea37e8777 100644 --- a/packages/clerk-js/src/ui/contexts/components/SignUp.ts +++ b/packages/clerk-js/src/ui/contexts/components/SignUp.ts @@ -77,12 +77,14 @@ export const useSignUpContext = (): SignUpContextType => { signUpUrl = buildURL({ base: signUpUrl, hashSearchParams: [queryParams, preservedParams] }, { stringify: true }); waitlistUrl = buildURL({ base: waitlistUrl, hashSearchParams: [queryParams, preservedParams] }, { stringify: true }); + const authQueryString = redirectUrls.toSearchParams().toString(); + const emailLinkRedirectUrl = ctx.emailLinkRedirectUrl ?? buildRedirectUrl({ routing: ctx.routing, baseUrl: signUpUrl, - authQueryString: '', + authQueryString, path: ctx.path, endpoint: isCombinedFlow ? '/create' + MAGIC_LINK_VERIFY_PATH_ROUTE : MAGIC_LINK_VERIFY_PATH_ROUTE, }); @@ -91,7 +93,7 @@ export const useSignUpContext = (): SignUpContextType => { buildRedirectUrl({ routing: ctx.routing, baseUrl: signUpUrl, - authQueryString: '', + authQueryString, path: ctx.path, endpoint: isCombinedFlow ? '/create' + SSO_CALLBACK_PATH_ROUTE : SSO_CALLBACK_PATH_ROUTE, }); @@ -113,7 +115,7 @@ export const useSignUpContext = (): SignUpContextType => { navigateAfterSignUp, queryParams, initialValues: { ...ctx.initialValues, ...initialValuesFromQueryParams }, - authQueryString: redirectUrls.toSearchParams().toString(), + authQueryString, isCombinedFlow, }; }; From b0a3f8337bf690220c0c56914b0654b7ad7c2dfc Mon Sep 17 00:00:00 2001 From: Dylan Staley <88163+dstaley@users.noreply.github.com> Date: Tue, 21 Jan 2025 13:41:33 -0800 Subject: [PATCH 2/2] chore(clerk-js): Add changeset --- .changeset/five-plants-sin.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/five-plants-sin.md diff --git a/.changeset/five-plants-sin.md b/.changeset/five-plants-sin.md new file mode 100644 index 00000000000..5dfab18ffbb --- /dev/null +++ b/.changeset/five-plants-sin.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-js': patch +--- + +Fixes an issue where certain query parameters were not preserved during the SSO callback.