Overview
This guide walks you through creating Google OAuth credentials and connecting them to the Launch mobile app. The boilerplate uses Expo AuthSession inapps/mobile/lib/auth/google.ts and sends the Google token to the API for
verification. These steps work for both iOS and Android in the Launch template.
Prerequisites
- Access to Google Cloud Console
- A Google Cloud project created for your app
Steps
Step 1: Create your OAuth client ID (iOS)
Open Google Cloud Console, then go to APIs & Services → Credentials and click Create credentials → OAuth client ID. If Google prompts you to configure the OAuth consent screen first, complete that setup before continuing. Choose External, enter your app name, support email, and developer contact email, then add yourself as a test user. Save the changes and return to the Credentials page. Now create an iOS OAuth client. Give it a name, then enter the iOS bundle identifier fromapps/mobile/app.config.ts. After you create the client, copy
the iOS client ID—you will use it in your mobile environment file.
Step 2: Create a Web client ID (required)
The shared Google Auth module validates both an iOS client ID and a Web client ID, even when you are testing mobile locally. Create a Web application OAuth client and use your ngrok HTTPS URL for both the origin and redirect. Set these values in the Web client configuration (replace with your ngrok forwarding URL):- Authorized JavaScript origins:
https://YOUR_NGROK_ID.ngrok-free.app - Authorized redirect URIs:
https://YOUR_NGROK_ID.ngrok-free.app/api/auth/callback/google
Step 3: Update environment files
Updateapps/mobile/.env with:
EXPO_PUBLIC_GOOGLE_IOS_CLIENT_IDEXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID
apps/api/.env with:
GOOGLE_WEB_CLIENT_IDGOOGLE_CLIENT_SECRET
pnpm ios or pnpm android again so the updated env values are
bundled into the development build. You only need to run pnpm prebuild again
if you changed native config in apps/mobile/app.config.ts (for example, URL
schemes).
Step 4: Enable iOS deep links
Updateapps/mobile/app.config.ts to enable the iOS URL scheme used by Google
Sign-In. Set the CFBundleURLName to a readable app name, and set the
CFBundleURLSchemes value to the iOS URL scheme shown in Google Cloud
Console for the iOS client you created in Step 1.
If these values are currently commented out, uncomment them and replace the
placeholders.
When you set CFBundleURLName, it is safest to use the same value as your
bundle identifier (for example, com.company.launchstarter) so it stays
consistent with the rest of your iOS configuration.