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(() => {