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