I ended up using import * as GoogleSignIn from 'expo-google-sign-in'; instead of the import * as Google from 'expo-auth-session/providers/google';

It seems this is the only way I can get it to work properly.

Answer from Cornel Raiu on Stack Overflow
🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › auth-session
AuthSession - Expo Documentation
Note: the web browser should share cookies with your system web browser so that users do not need to sign in again if they are already authenticated on the system browser -- Expo's WebBrowser API takes care of this. Authentication provider redirects: upon successful authentication, the authentication provider should redirect back to the application by redirecting to URL provided by the app in the query parameters on the sign in page (read more about how linking works in mobile apps), provided that the URL is in the allowlist of allowed redirect URLs.
🌐
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 - 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 but the response vanishes and does not do anything, but this happens only in .apk but works fine in Expo Go App.
Published   Jul 16, 2022
🌐
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
🌐
Expo Documentation
docs.expo.dev › guides › google-authentication
Using Google authentication - Expo Documentation
A guide on using @react-native-google-signin/google-signin library to integrate Google authentication in your Expo project.
🌐
GitHub
github.com › expo › expo › issues › 11061
Google Provider in `expo-auth-session` does not return authorization code · Issue #11061 · expo/expo
June 20, 2020 - 🐛 Bug Report In expo-auth-session version ~2.0.0, when I follow the guide in docs about logging in with Google, I do not get the authorization code in my authentication object or in the params of the result (result.params). Looking into ...
Published   Nov 17, 2020
🌐
Reddit
reddit.com › r/expo › expo auth session, google oauth and android
r/expo on Reddit: Expo Auth Session, Google OAuth and Android
May 6, 2025 -

I've been trying to set up google oauth for the android version of the application that I'm building. Below you will find a code snippet of the initial set up that I had. I have gone through several iterations of how I've been setting up the code to work with the android version however the error that I keep getting is a URI redirect mismatch. I understand what the error means but I'm not sure what I'm doing wrong.

In the google developers console in the android section, there are 3 inputs where I can enter information.

name: this doesn't matter AFAIK
Package.name: I've tried to set this either the scheme in my app.json or the android.package name
SHA-1 Fingerprint certificate: I got this value from doing eas credentials.

I'm fairly certain that I'm screwing up the package.name input.

App.json scheme: com.john-doe.mobile-client

android.package: com.john-doe.appname_android

Im going to make the scheme and the package name the same then will rebuild. I will probably need to update the sha-1 fingerprint certificate also after a rebuild. Once the build is done I'll come back to update this but I'm honestly stumped.

import { useAuthRequest } from "expo-auth-session/providers/google";

WebBrowser.maybeCompleteAuthSession();
const [request, response, promptAsync] = useAuthRequest({
        androidClientId:
            "myadroid-client-id.apps.googleusercontent.com",
        iosClientId:
            "myios-client-id.apps.googleusercontent.com",
    });

    // refactor this to not use useEfffect.
    useEffect(() => {
        if (response?.type === "success") {
            const { authentication } = response;
            const accessToken = authentication?.accessToken;

            if (accessToken) {
                saveAuthToken(accessToken)
                    .then(() => refreshSession())
                    .then(() => router.push("/"))
                    .catch((error) => {
                        console.error("Error saving token:", error);
                    });
            }
        }
    }, [response]);
Find elsewhere
🌐
Expo Documentation
docs.expo.dev › guides › authentication
Authentication with OAuth or OpenID providers - Expo Documentation
expo-auth-session provides a unified API for implementing OAuth and OpenID Connect providers on Android, iOS, and web. This guide will show you how to use the AuthSession API using a few examples. When using the AuthSession API, the following rules apply to all authentication providers: Use WebBrowser.maybeCompleteAuthSession() to dismiss the web popup. If you forget to add this then the popup window will not close.
🌐
Appwrite
appwrite.io › threads › 1320926689387089930
Google OAuth not working due to invalid redirect URI, Expo Dev Build - Threads - Appwrite
export async function googleLogin() { const redirectUri = Linking.createURL('/', { isTripleSlashed: true }); const response = await account.createOAuth2Session( OAuthProvider.Google, redirectUri ); if (!response) { throw new Error('Failed to create OAuth2 session.'); } const browserResponse = await openAuthSessionAsync( response.toString(), redirectUri ); if (browserResponse.type !== 'success') { throw new Error('Failed to authenticate with Google.'); } const url = new URL(browserResponse.url); const secret = url.searchParams.get('secret')?.toString(); const userId = url.searchParams.get('userId')?.toString(); if (!secret || !userId) { throw new Error('Could not find values in URL.'); } const session = await account.createSession(userId, secret); if (!session) { throw new Error('Failed to create session'); } } Let me know if you need more context / code.
🌐
GitHub
github.com › expo › expo › issues › 9090
[expo-auth-session] Unable to get Google+Firebase authentication working in standalone app · Issue #9090 · expo/expo
July 4, 2020 - 🐛 Bug Report Summary of Issue (just a few sentences) When attempting to follow either of the Google AuthSession demos with Firebase (the one using Token or with IdToken in the Authentication guides. While this works in development (using...
Published   Jul 04, 2020
🌐
Reddit
reddit.com › r/expo › problems with expo-auth-session
r/expo on Reddit: Problems with expo-auth-session
October 12, 2025 -

Hi there! I'm working in a personal project and I want to make a log in and sign up with google, then I have been working with expo-auth-session (https://docs.expo.dev/versions/latest/sdk/auth-session/) and google cloud. The issue is that when I make log in, it never gets back to my app, everytime it redirect to google.com

I'm working in android. How can I fix this problem? did you find this issue anytime?

thanks you for advice!

Edit: My login button component is this (it's just a test, I never do it before):

WebBrowser.maybeCompleteAuthSession();
export const Login = () => {
  const [request, response, promptAsync] = Google.useAuthRequest({
    androidClientId: config.GOOGLE_ANDROID_CLIENT_ID,
    clientId: config.GOOGLE_ANDROID_CLIENT_ID,
  });
  const testSending = async (token: string) => {
    console.log("=========================TOKEN========================");
    console.log(token);
    console.log("=================================================");
  };
  useEffect(() => {
    if (response) {
      if (response.type === 'success') {
        const { authentication } = response;
        testSending(authentication?.idToken || ''); 
        console.log(authentication);
      }else {
        console.log("=========================FAILED========================");
        console.log("Login failed");
        console.log("=================================================");
      }
    }
  }, [response])


  return (
    <Pressable onPress={() => promptAsync().catch((error) => console.error(error))} disabled={!request} style={{ padding: 10, backgroundColor: 'blue' }}>
      <Text style={{ color: 'white' }}>Login with Google</Text>
    </Pressable>
  )
}
🌐
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 - To fix this, You need to run the development build then you’ll be able to start signing in with google. To run a development build: 1. First, you need to clean you pre-build ...
🌐
GitHub
github.com › expo › expo › issues › 11714
[expo-auth-session][google] Second call to promptAsync doesn't trigger a useEffect after response · Issue #11714 · expo/expo
December 18, 2020 - 🐛 Bug Report Summary of Issue I'm using the expo-auth-session package and I've noticed that the useEffect recommended in the guide to handle the response doesn't trigger if I login, logout and login again. I'm not sure if this is caused ...
Published   Jan 22, 2021
🌐
GitHub
github.com › expo › expo › issues › 21944
Google authentication not working with Expo SDK 48 · Issue #21944 · expo/expo
April 2, 2023 - Reload to refresh your session. ... When the user clicks on the sign-in button, a pop-up web browser should open, allowing the user to select a Google account to use for logging in to the Expo app.
Published   Apr 02, 2023
🌐
Stack Overflow
stackoverflow.com › questions › tagged › expo-auth-session
Newest 'expo-auth-session' Questions - Stack Overflow
I am trying to use OAuth in my mobile app using doorkeeper (Rails) and expo-auth-session I managed to setup the login as follows: const [request, response, ... ... I was using Expo SDK 48 and my app was working fine with Google and Facebook authentication using a web browser based authentication scheme.