diff --git a/.changeset/funny-books-sell.md b/.changeset/funny-books-sell.md new file mode 100644 index 000000000..8a3a30323 --- /dev/null +++ b/.changeset/funny-books-sell.md @@ -0,0 +1,9 @@ +--- +"@logto/experience": patch +--- + +fix native social sign-in callback + +In a native environment, the social sign-in callback that posts to the native container (e.g. WKWebView in iOS) was wrong. + +This was introduced by a refactor in #5536: It updated the callback path from `/sign-in/social/:connectorId` to `/callback/social/:connectorId`. However, the function to post the message to the native container was not updated accordingly. diff --git a/packages/experience/src/containers/SocialSignInList/use-social.ts b/packages/experience/src/containers/SocialSignInList/use-social.ts index 69733cb8a..ce70d5ec4 100644 --- a/packages/experience/src/containers/SocialSignInList/use-social.ts +++ b/packages/experience/src/containers/SocialSignInList/use-social.ts @@ -23,7 +23,7 @@ const useSocial = () => { : redirectTo; getLogtoNativeSdk()?.getPostMessage()({ - callbackUri: `${window.location.origin}/sign-in/social/${connectorId}`, + callbackUri: `${window.location.origin}/callback/social/${connectorId}`, redirectTo: redirectUri, }); }, []); diff --git a/packages/experience/src/hooks/use-single-sign-on.ts b/packages/experience/src/hooks/use-single-sign-on.ts index 20c6255f3..751ba725f 100644 --- a/packages/experience/src/hooks/use-single-sign-on.ts +++ b/packages/experience/src/hooks/use-single-sign-on.ts @@ -25,7 +25,7 @@ const useSingleSignOn = () => { ).toString(); getLogtoNativeSdk()?.getPostMessage()({ - callbackUri: `${window.location.origin}/sign-in/social/${connectorId}`, + callbackUri: `${window.location.origin}/callback/social/${connectorId}`, redirectTo: redirectUri, }); }, []); diff --git a/packages/experience/src/pages/SocialSignInWebCallback/index.test.tsx b/packages/experience/src/pages/SocialSignInWebCallback/index.test.tsx index 8f31efcca..8009817c2 100644 --- a/packages/experience/src/pages/SocialSignInWebCallback/index.test.tsx +++ b/packages/experience/src/pages/SocialSignInWebCallback/index.test.tsx @@ -42,10 +42,10 @@ describe('SocialCallbackPage with code', () => { renderWithPageContext( - } /> + } /> , - { initialEntries: ['/sign-in/social/invalid'] } + { initialEntries: ['/callback/social/invalid'] } ); await waitFor(() => { @@ -69,10 +69,10 @@ describe('SocialCallbackPage with code', () => { renderWithPageContext( - } /> + } /> , - { initialEntries: [`/sign-in/social/${connectorId}`] } + { initialEntries: [`/callback/social/${connectorId}`] } ); await waitFor(() => { @@ -91,10 +91,10 @@ describe('SocialCallbackPage with code', () => { renderWithPageContext( - } /> + } /> , - { initialEntries: [`/sign-in/social/${connectorId}`] } + { initialEntries: [`/callback/social/${connectorId}`] } ); await waitFor(() => { @@ -122,10 +122,10 @@ describe('SocialCallbackPage with code', () => { renderWithPageContext( - } /> + } /> , - { initialEntries: [`/sign-in/social/${connectorId}`] } + { initialEntries: [`/callback/social/${connectorId}`] } ); await waitFor(() => { @@ -144,10 +144,10 @@ describe('SocialCallbackPage with code', () => { renderWithPageContext( - } /> + } /> , - { initialEntries: [`/sign-in/social/${connectorId}`] } + { initialEntries: [`/callback/social/${connectorId}`] } ); await waitFor(() => {