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 21, 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
Find elsewhere
🌐
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 ...
🌐
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.
🌐
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]);
🌐
npm
npmjs.com › package › expo-auth-session
expo-auth-session - npm
Granular tokens are now limited to 90 days and require 2FA by default. Update your CI/CD workflows to avoid disruption. Learn more.× ... 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.
🌐
Reddit
reddit.com › r/expo › google sign in works on expo go but it doesn't work on standalone app
r/expo on Reddit: Google sign in works on expo go but it doesn't work on standalone app
January 29, 2024 -

Hello everyone, im trying to implement google sign in to my app, but i cant make it work on my build (expo go is working). So far i've tried enabling custom uri schemes on google console but after signin nothing happens, the app just keeps on loading. I've tried adding a redirectUri but that gets me the error "Error 400: invalid_request", Details: "redirec_uri=exp://my-slug-here". So my question is, how can i set up this properly? Any help is really appreciated, here's my code:

import * as WebBrowser from "expo-web-browser";
import * as Google from "expo-auth-session/providers/google";
import * as AuthSession from 'expo-auth-session';

const redirectUri = AuthSession.makeRedirectUri({
useProxy: false,
native: 'exp://slug-here',
});
const [request, response, promptAsync] = Google.useIdTokenAuthRequest({
clientId:
"clientId",
androidClientId: "androidId",
redirectUri
});

🌐
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
🌐
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 - For the first run, it took me a little while realizing that the usage of the official firebase/auth package with RN/Expo is not that easy: https://github.com/firebase/firebase-js-sdk/issues/5699#issuecomment-961263804. ... 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
🌐
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
🌐
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.