I have had the same issue, have managed to get it working using expo-dev-client.

I didn't find a way to fix this for Expo Go - not sure if there is one currently. It seems like using Oauth google login on IOS, currently requires building the app.

Once you configure the build, you can use

import { makeRedirectUri } from 'expo-auth-session';

to get the correct redirect URL.

const [request, response, promptAsync] = Google.useAuthRequest({
 clientId: 'xxxx',
 iosClientId:
        'xxxx',
 redirectUri: makeRedirectUri()});

Also remember to generate IOS credentials in the google console.

Answer from bonbonvoyage on Stack Overflow
🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › auth-session
AuthSession - Expo Documentation
For example, use @react-native-google-signin/google-signin for Google authentication and react-native-fbsdk-next for Facebook. For more information, see Authentication overview. expo-crypto is a peer dependency and must be installed alongside expo-auth-session.
🌐
Expo Documentation
docs.expo.dev › guides › google-authentication
Using Google authentication - Expo Documentation
The @react-native-google-signin/google-signin library provides a way to integrate Google authentication in your Expo app. It also provides native sign-in buttons and supports authenticating the user as well as obtaining their authorization to ...
🌐
Medium
medium.com › @gbenleseun2016 › guide-to-sign-in-with-google-on-the-expo-platform-using-expo-auth-session-9d3688d2107a
Guide to sign In with Google On the Expo platform using expo-auth-session. | by Seun Gbenle | Medium
September 6, 2023 - “expo-auth-session”- command will manage the sign in with google, “expo-crypto” is a peer dependency and must be installed alongside expo-auth-session, “expo-web-browser” will enable you sign in to google without leaving the application.
🌐
Expo Documentation
docs.expo.dev › guides › authentication
Authentication with OAuth or OpenID providers - Expo Documentation
Build requests using AuthSession.useAuthRequest(), the hook allows for async setup which means mobile browsers won't block the authentication. Be sure to disable the prompt until request is defined. You can only invoke promptAsync in user interaction on the web. Expo Go cannot be used for local development and testing of OAuth or OpenID Connect-enabled apps due to the inability to customize your app scheme. You can instead use a Development Build, which enables an Expo Go-like development experience and supports OAuth redirects back to your app after login in a manner that works just like it would in production.
🌐
GitHub
gist.github.com › jdthorpe › aaa0d31a598f299a57e5c76535bf0690
expo-auth-session example · GitHub
I'm still facing blank page and an error after entering Google account login even if I use WebBrowser.maybeCompleteAuthSession();: Something went wrong trying to finish signing in. Please close this screen to go back to the app. Do you know why? I remember Expo Go asked me for permission to access external link before open Google's authentication screen on my old login method using AuthSession.startAsync({ authUrl }) (SDK 48) and now it doesn't ask me anymore.
🌐
Medium
nishant-kr.medium.com › implementing-google-auth-with-react-native-expo-app-48005897ab21
Implementing Google Auth with React-Native Expo app | by Nishant Kumar | Medium
January 27, 2025 - This shows you how to integrate Google Sign-In with a React Native Expo app, covering setup, authentication, and troubleshooting issues.
Find elsewhere
🌐
DEV Community
dev.to › angela300 › login-with-google-on-react-native-expo-3h9n
Login with Google on React Native Expo - DEV Community
March 18, 2024 - Hit create and on the pop up screen that comes up, copy the client ID an paste it your App.js file for later use That was the most difficult part, now we can start creating the code for the application In app.js, import WebBrowser: Import * as WebBrowser from “expo-web-browser” Initialize the WebBrowser with this command: WebBrowser.maybeCompleteAuthSession(); Also add this import in your app.js: Import * as Google from “expo-auth-session/providers/google” To save the information of the user when they sign in so that they do not have to sign in again, we will use async storage: Import
🌐
GitHub
github.com › expo › expo › issues › 18270
expo-auth-session with Google login problems in Development build on android · Issue #18270 · expo/expo
July 16, 2022 - Summary hi, Loggin in with expo-auth-session works absolutely fine in Expo Go App but as soon as .apk is built, the login workflow opens the signin page and then closes after the login is complete ...
Published   Jul 16, 2022
🌐
npm
npmjs.com › package › expo-auth-session
expo-auth-session - npm
AuthSession is the easiest way to implement web browser based authentication (for example, browser-based OAuth flows) to your app, built on top of expo-web-browser.
      » npm install expo-auth-session
    
Published   Dec 05, 2025
Version   7.0.10
Author   650 Industries, Inc.
🌐
Expo Documentation
docs.expo.dev › develop › authentication
Authentication in Expo and React Native apps - Expo Documentation
Once the user is authenticated, you need to think about how to store, restore, and validate their session. ... Traditionally, cookies are used to store sessions on the web, while JSON Web Tokens (JWTs) are common in native applications. The above tutorials demonstrate exactly how to handle this. After receiving the ID token from a provider like Google or Apple, you generate a custom JWT on the server using Expo API Routes.
🌐
GitHub
github.com › expo › expo › issues › 21084
[expo-auth-session] I'm unable to sign in with Google on Android · Issue #21084 · expo/expo
February 3, 2023 - Summary I'm using the expo-auth-session in order to allow the Google social login in my app. The problem is that only works on iOS, and I don't know why it is not working on Android, and I ...
Published   Feb 03, 2023
🌐
Medium
medium.com › @csaba.ujvari › expo-google-login-f83e2b7885b0
React Native Google Login. I have started to add a new login… | by chabeee | Medium
May 6, 2022 - interface IGoogleLoginProps { onLoginStarted: () => any; onLoginEnded: () => any; onLoginSucceeded: (token: string) => any; onLoginFailed: (e: any) => any; }const GoogleLogin: FC<IGoogleLoginProps> = ({ onLoginStarted, onLoginEnded, onLoginSucceeded, onLoginFailed }) => { const [request, response, promptAsync] = Google.useIdTokenAuthRequest({ androidClientId: Environment.androidClientId, expoClientId: Environment.expoClientId, iosClientId: Environment.iosClientId, scopes: [ 'profile', 'email', 'openid', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo
🌐
YouTube
youtube.com › watch
Expo Auth Session for Google Authentication on React Native Apps - YouTube
Hi everyone!SKIP INTRO and go straight to code: 2:28Today I am going to talk about Expo AuthSession with the Google provider and some drawbacks it has, speci...
Published   February 5, 2022
🌐
CodeSandbox
codesandbox.io › examples › package › expo-auth-session
expo-auth-session examples - CodeSandbox
Use this online expo-auth-session playground to view and fork expo-auth-session example apps and templates on CodeSandbox.
🌐
Medium
medium.com › @chenfeiyu132 › set-up-google-login-in-react-native-with-expo-app-auth-98711f8ff8c4
Set up Google login in React Native with Expo App Auth | by Feiyu | Medium
October 23, 2022 - There isn’t an existing function in expo-app-auth that “refreshes” the auth session. So instead, we have to manually call the Google OAuth2 endpoint using our refreshToken which we received along with idToken when we called Google.logInAsync(config) .
🌐
Supabase
supabase.com › docs › guides › auth › quickstarts › with-expo-react-native-social-auth
Build a Social Auth App with Expo React Native | Supabase Docs
16 hours ago - By default Supabase Auth requires email verification before a session is created for the user. To support email verification you need to implement deep link handling! While testing, you can disable email confirmation in your project's email auth provider settings. Now integrate social authentication with Supabase Auth, starting with Apple authentication. If you only need to implement Google authentication, you can skip to the Google authentication section. Start by adding the button inside the login screen: