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. 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, }; };