1import url from 'url'; 2 3import { websiteOrigin } from '../apiClient'; 4import { getAuthSchemeAsync } from '../native-modules/DevMenuInternal'; 5import { openAuthSessionAsync } from '../native-modules/DevMenuWebBrowser'; 6 7export async function startAuthSessionAsync(type: 'signup' | 'login') { 8 const scheme = await getAuthSchemeAsync(); 9 10 const redirectBase = `${scheme}://auth`; 11 const authSessionURL = `${websiteOrigin}/${type}?app_redirect_uri=${encodeURIComponent( 12 redirectBase 13 )}`; 14 15 const result = await openAuthSessionAsync(authSessionURL, redirectBase); 16 17 if (result.type === 'success') { 18 const { query } = url.parse(result.url, true); 19 const sessionSecret = decodeURIComponent(query['session_secret'] as string); 20 return sessionSecret; 21 } 22 23 return null; 24} 25