diff --git a/packages/frontend/apps/android/src/app.tsx b/packages/frontend/apps/android/src/app.tsx index b107e999a..2ea7b2234 100644 --- a/packages/frontend/apps/android/src/app.tsx +++ b/packages/frontend/apps/android/src/app.tsx @@ -304,6 +304,7 @@ CapacitorApp.addListener('appUrlOpen', ({ url }) => { if (urlObj.hostname === 'authentication') { const method = urlObj.searchParams.get('method'); const payload = JSON.parse(urlObj.searchParams.get('payload') ?? 'false'); + const serverBaseUrl = urlObj.searchParams.get('server'); if ( !method || @@ -314,9 +315,20 @@ CapacitorApp.addListener('appUrlOpen', ({ url }) => { return; } - const authService = frameworkProvider + let authService = frameworkProvider .get(DefaultServerService) .server.scope.get(AuthService); + + if (serverBaseUrl) { + const serversService = frameworkProvider.get(ServersService); + const server = serversService.getServerByBaseUrl(serverBaseUrl); + if (!server) { + console.error('Authentication callback server not found', serverBaseUrl); + return; + } + authService = server.scope.get(AuthService); + } + if (method === 'oauth') { authService .signInOauth(payload.code, payload.state, payload.provider)