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.
🌐
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.
Discussions

react native - expo-auth-google to expo-auth-session - Stack Overflow
I'm trying to follow an old tutorial that uses the deprecated expo-auth-google sign in method. I know expo-auth-session is the newer version but I'm getting this error in my application when I try ... More on stackoverflow.com
🌐 stackoverflow.com
react native - Google Redirect Url For Development Setup Using Expo-auth-session - Stack Overflow
I am are trying to get Oauth flow working on a mobile app built with React Native and the "expo-auth-session" library, which has out-of-the-box support for Google OAuth. See https://docs.... More on stackoverflow.com
🌐 stackoverflow.com
[expo-auth-session] I'm unable to sign in with Google on Android
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 ... More on github.com
🌐 github.com
2
February 3, 2023
react native - Google Auth in expo 49 - Stack Overflow
I landed on this question / answer: expo-auth-google to expo-auth-session and followed the instructions on the answer, More on stackoverflow.com
🌐 stackoverflow.com
🌐
Expo Documentation
docs.expo.dev › guides › authentication
Authentication with OAuth or OpenID providers - Expo Documentation
November 11, 2025 - expo-auth-session provides a unified API for implementing OAuth and OpenID Connect providers on Android, iOS, and web.
🌐
GitHub
gist.github.com › jdthorpe › aaa0d31a598f299a57e5c76535bf0690
expo-auth-session example · GitHub
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.
🌐
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
Find elsewhere
🌐
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 ...
🌐
Stack Overflow
stackoverflow.com › questions › 76091117 › google-redirect-url-for-development-setup-using-expo-auth-session
react native - Google Redirect Url For Development Setup Using Expo-auth-session - Stack Overflow
See https://docs.expo.dev/guides/google-authentication. The redirect URI works if we enter a production value such as "com.mydomain.myapp:/oauth", but the expo-auth-session library provides tools to run development apps locally using a local HTTP server.
🌐
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
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 - Now you can go ahead & use the google authentication for your app. The GoogleSignin.signIn() method will return you the user id, email, name & photo. You can use these details to create a JWT(JSON Web Token) Session for your user from the server.
Top answer
1 of 2
2

this is working for me

import { makeRedirectUri } from 'expo-auth-session';
import Constants from 'expo-constants';
import * as Google from 'expo-auth-session/providers/google';

const EXPO_REDIRECT_PARAMS = {
  useProxy: true,
  projectNameForProxy: '@yourUsername/yourScheme',
};

const NATIVE_REDIRECT_PARAMS = { native: 'yourScheme://' };

const REDIRECT_PARAMS =
  Constants.appOwnership === 'expo'
    ? EXPO_REDIRECT_PARAMS
    : NATIVE_REDIRECT_PARAMS;

const GOOGLE_CONFIG = {
  androidClientId: '...',
  webClientId: '...',
  iosClientId: '...',
  redirectUri: makeRedirectUri(REDIRECT_PARAMS),
};

const LoginPage = ()=> {
     const [request, response, promptAsync] = Google.useAuthRequest(GOOGLE_CONFIG)
     ...

}
2 of 2
-2

i get invalid_request and i cant solve it. im trying with Expo Go and Native. Same problem. Could anyone give me a hand please?.

import { makeRedirectUri } from "expo-auth-session";
import * as Google from "expo-auth-session/providers/google";
import { LinearGradient } from "expo-linear-gradient";
import { router } from "expo-router";
import * as WebBrowser from "expo-web-browser";
import { useEffect } from "react";
import { Image, StyleSheet, Text } from "react-native";
import SocialLoginButton from "./commons/socialLoginButton";

WebBrowser.maybeCompleteAuthSession();

export default function LoginScreen() {

  const redirectUri = makeRedirectUri({
    scheme: "app",
  });

  console.log("Redirect URI:", redirectUri);

  const [request, response, promptAsync] = Google.useAuthRequest({
    webClientId: "",
    androidClientId: "",
    scopes: ["profile", "email"],
    redirectUri,
  });

  useEffect(() => {
    if (response?.type === "success") {
      const { authentication } = response;

      fetch("https://www.googleapis.com/oauth2/v3/userinfo", {
        headers: { Authorization: `Bearer ${authentication?.accessToken}` },
      })
        .then(res => res.json())
        .then(userInfo => {
          console.log("Google User Info:", userInfo);
          router.replace("/homeScreen");
        });
    }
  }, [response]);

  return (
    <LinearGradient colors={["#6EC1E4", "#8364E8"]} style={styles.container}>
      <Image
        source={require("../assets/images/logo-blanco.png")}
        style={styles.logo}
        resizeMode="contain"
      />
      <Text style={styles.title}>Hubbly</Text>
      <Text style={styles.subtitle}>Log in and connect with new experiences.</Text>

      <SocialLoginButton
        backgroundColor="#4285F4"
        icon="google"
        text="Inicia sesión con Google"
        textColor="#fff"
        onPress={() => promptAsync()}
      />
    </LinearGradient>
  );
}

const styles = StyleSheet.create({
  container: { flex: 1, justifyContent: "center", alignItems: "center", paddingHorizontal: 20 },
  logo: { width: 100, height: 100, marginBottom: 20 },
  title: { fontSize: 28, fontWeight: "bold", color: "white", marginBottom: 10 },
  subtitle: { fontSize: 16, color: "white", textAlign: "center", marginBottom: 40 },
  moreButton: { flexDirection: "row", alignItems: "center", marginTop: 16 },
  moreText: { color: "#fff", fontSize: 16, marginRight: 5 },
  terms: { color: "#fff", fontSize: 12, textAlign: "center", marginTop: 30, paddingHorizontal: 20 },
});
🌐
Expo Documentation
docs.expo.dev › develop › authentication
Authentication in Expo and React Native apps - Expo Documentation
November 11, 2025 - 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.
🌐
npm
npmjs.com › package › expo-auth-session
expo-auth-session - npm
November 17, 2025 - Expo module for browser-based authentication. Latest version: 7.0.10, last published: 10 days ago. Start using expo-auth-session in your project by running `npm i expo-auth-session`. There are 74 other projects in the npm registry using expo-auth-session.
      » npm install expo-auth-session
    
Published   Dec 05, 2025
Version   7.0.10
Author   650 Industries, Inc.
🌐
GitHub
github.com › expo › expo › blob › main › packages › expo-auth-session › src › providers › Google.ts
expo/packages/expo-auth-session/src/providers/Google.ts at main · expo/expo
* Extends [`AuthRequest`](#authrequest) and accepts [`GoogleAuthRequestConfig`](#googleauthrequestconfig) in the constructor.
Author   expo
🌐
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 - const config = { expoClientId: "some value", iosClientId: "some value", androidClientId: "some value", }; const [user, setUser] = useState(null); const [request, response, googlePromptLogin] = Google.useAuthRequest(config); const SignInWithGoogle = async () => { googlePromptLogin().then(async (response) => { if (response.type === "success") { const credential = GoogleAuthProvider.credential( null, response.authentication.accessToken ); await signInWithCredential(auth, credential); } }); return Promise.reject(); }; useEffect(() => { onAuthStateChanged(auth, (user) => { if (user) { setUser(user); } else { setUser(null); } }); }), [];
Published   Jul 16, 2022
🌐
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
🌐
Medium
medium.com › @csaba.ujvari › expo-google-login-f83e2b7885b0
React Native Google Login. I have started to add a new login… | by chabeee | Medium
October 22, 2022 - The doc drives you through the initializing process, but here are the some of the key points: Installation: expo install expo-auth-session expo-random · After that you need to setup the Google credentials which is documented here: https://docs.expo.dev/guides/authentication/#google
🌐
Anycodings
anycodings.com › questions › expo-auth-sessionprovidersgoogle-googleuseauthrequest
Loading...
anycodings Assists of Developers to Develop New Objects Assists of Developers to Develop New Objects