Helped me through, despite not being the same problem the use the URL quote helped me solve this by changing a bit how I thought about it!

The final result became a little too big to paste here, but the handling ended up being relatively straightforward:

  useEffect(() => {
    if (result?.type === "success") {
      const { token, iv } = getParamsFromUrl(result.url)

      const session = decrypt(token, key, iv)
      console.log({ session })
    }
  }, [result])
🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › auth-session
AuthSession - Expo Documentation
A universal library that provides an API to handle browser-based authentication. ... AuthSession enables web browser-based authentication (for example, browser-based OAuth flows) in your app by utilizing WebBrowser and Crypto.
🌐
Expo Documentation
docs.expo.dev › guides › authentication
Authentication with OAuth or OpenID providers - Expo Documentation
Learn how to utilize the expo-auth-session library to implement authentication with OAuth or OpenID providers.
🌐
Better Auth
better-auth.com › docs › integrations › expo
Expo Integration | Better Auth
Social Authentication Support: enables social auth flows by handling authorization URLs and callbacks within the Expo web browser.
🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › webbrowser
WebBrowser - Expo Documentation
A promise which fulfils with WebBrowserMayInitWithUrlResult object. ... This will be done using a "custom Chrome tabs" browser, AppState, and Linking APIs. Opens the url with Safari in a modal using ASWebAuthenticationSession.
🌐
Expo Documentation
docs.expo.dev › develop › authentication
Authentication in Expo and React Native apps - Expo Documentation
Expo AuthSession is a client-side package that helps you open a web browser or native modal to start the OAuth login flow.
🌐
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.
Find elsewhere
🌐
Reddit
reddit.com › r/reactnative › expo auth google with web browser
r/reactnative on Reddit: Expo auth google with web browser
October 6, 2023 -

Is there any way to authenticate through Google using webview or expo-web-browser?

Because I don't want to touch the native files (ios - android)

🌐
Expo
auth.expo.io
Expo AuthSession Redirect Proxy
https://auth.expo.io/@<account-name>/<project-name> Due to web browser changes like WebKit's Tracking Prevention, the AuthSession proxy service may not work reliably in edge cases such as when a user's device is configured to block cookies or prevent cross-site tracking.
🌐
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.
🌐
Stack Overflow
stackoverflow.com › questions › 75263907 › how-to-handle-auth-with-webbrowser-openauthsessionasync-in-expo
react native - How to handle Auth with WebBrowser.openAuthSessionAsync in Expo? - Stack Overflow
I'm trying to figure out how to have access to any kind of info from the return, from cookies to query string on the URL as I have control over how my API handles the return, but I'm not being able to access any kind of info from the AuthSession. ... import { useEffect, useState } from "react" import { Button, View, Text } from "react-native" import * as WebBrowser from "expo-web-browser" import * as Linking from "expo-linking" export default () => { const [result, setResult] = useState<WebBrowser.WebBrowserAuthSessionResult | null>(null) useEffect(() => { console.log(result) }, [result]) cons
🌐
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.
🌐
Descope
descope.com › blog › post › expo-authentication
Add Authentication to an Expo App With Descope
Now that you’ve been introduced to Expo and why Descope might be the right authentication solution for your Expo apps, we'll dive into the practical aspects of implementing Expo authentication with Descope. As a note, instead of following along with the instructions below, you can also take a look at our sample app. ... First, ensure you have Expo CLI installed. If not, you can install it using npm install -g expo-cli. Create a new Expo project using npx create-expo-app YourProjectName, and navigate to your project directory. Install necessary packages such as expo-web-browser, expo-auth-session, and others using npm or yarn.
🌐
Expo Documentation
docs.expo.dev › router › advanced › authentication
Authentication in Expo Router - Expo Documentation
With Expo Router, all routes are always defined and accessible. You can use runtime logic to redirect users away from specific screens depending on whether they are authenticated. There are two different techniques for authenticating users within routes.
🌐
GitHub
github.com › expo › expo › blob › master › docs › pages › versions › unversioned › sdk › webbrowser.md
expo/docs/pages/versions/unversioned/sdk/webbrowser.md at master · expo/expo
expo-web-browser provides access to the system's web browser and supports handling redirects. On iOS, it uses SFSafariViewController or SFAuthenticationSession, depending on the method you call, and on Android it uses ChromeCustomTabs.
Author   expo
🌐
GitHub
github.com › expo › expo › issues › 10982
[expo-web-browser] Clear authSession for expo-web-browser · Issue #10982 · expo/expo
November 10, 2020 - [expo-web-browser] Clear authSession for expo-web-browser #10982 · Copy link · Labels · WebBrowserstale · VladCherniavsky · opened · on Nov 10, 2020 · Issue body actions · Hi all! Seems as there is an issue with expo-web-browser dismissing session. Currently I am using await WebBrowser.openAuthSessionAsync(authUrl, redirectUrl); to allow users to input their login credentials.
Published   Nov 10, 2020
🌐
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