From e7872cee5819caa2ecd37eb90f5a832fe702f3c2 Mon Sep 17 00:00:00 2001 From: Daniel Edwards Date: Tue, 22 Aug 2023 11:30:26 -0400 Subject: [PATCH 1/3] Adds check in Browser lib to replace pathname if coming from desktop redirect --- src/libs/Browser/index.web.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/Browser/index.web.js b/src/libs/Browser/index.web.js index 9e48bb25a105..f317c33f3619 100644 --- a/src/libs/Browser/index.web.js +++ b/src/libs/Browser/index.web.js @@ -72,7 +72,8 @@ function isSafari() { */ function openRouteInDesktopApp(shortLivedAuthToken = '', email = '') { const params = new URLSearchParams(); - params.set('exitTo', `${window.location.pathname}${window.location.search}${window.location.hash}`); + const openingFromDesktopRedirect = window.location.pathname === '/desktop-signin-redirect'; + params.set('exitTo', `${openingFromDesktopRedirect ? '/r' : window.location.pathname}${window.location.search}${window.location.hash}`); if (email && shortLivedAuthToken) { params.set('email', email); params.set('shortLivedAuthToken', shortLivedAuthToken); From 70ffa1bb6bfa257a34ecc03fcc1b0882a4f5340c Mon Sep 17 00:00:00 2001 From: Daniel Edwards Date: Tue, 22 Aug 2023 17:05:06 -0400 Subject: [PATCH 2/3] Update to use route CONST --- src/libs/Browser/index.web.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libs/Browser/index.web.js b/src/libs/Browser/index.web.js index f317c33f3619..c45bf71cee5f 100644 --- a/src/libs/Browser/index.web.js +++ b/src/libs/Browser/index.web.js @@ -1,5 +1,6 @@ import CONST from '../../CONST'; import CONFIG from '../../CONFIG'; +import ROUTES from '../../ROUTES'; /** * Fetch browser name from UA string @@ -72,7 +73,7 @@ function isSafari() { */ function openRouteInDesktopApp(shortLivedAuthToken = '', email = '') { const params = new URLSearchParams(); - const openingFromDesktopRedirect = window.location.pathname === '/desktop-signin-redirect'; + const openingFromDesktopRedirect = window.location.pathname === ROUTES.DESKTOP_SIGN_IN_REDIRECT; params.set('exitTo', `${openingFromDesktopRedirect ? '/r' : window.location.pathname}${window.location.search}${window.location.hash}`); if (email && shortLivedAuthToken) { params.set('email', email); From 6d04fda742772616246728a40693014efff77de2 Mon Sep 17 00:00:00 2001 From: Daniel Edwards Date: Tue, 22 Aug 2023 17:07:09 -0400 Subject: [PATCH 3/3] Added some comments --- src/libs/Browser/index.web.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libs/Browser/index.web.js b/src/libs/Browser/index.web.js index c45bf71cee5f..32f6392aef76 100644 --- a/src/libs/Browser/index.web.js +++ b/src/libs/Browser/index.web.js @@ -73,7 +73,9 @@ function isSafari() { */ function openRouteInDesktopApp(shortLivedAuthToken = '', email = '') { const params = new URLSearchParams(); - const openingFromDesktopRedirect = window.location.pathname === ROUTES.DESKTOP_SIGN_IN_REDIRECT; + // If the user is opening the desktop app through a third party signin flow, we need to manually add the exitTo param + // so that the desktop app redirects to the correct home route after signin is complete. + const openingFromDesktopRedirect = window.location.pathname === `/${ROUTES.DESKTOP_SIGN_IN_REDIRECT}`; params.set('exitTo', `${openingFromDesktopRedirect ? '/r' : window.location.pathname}${window.location.search}${window.location.hash}`); if (email && shortLivedAuthToken) { params.set('email', email);