🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › auth-session
AuthSession - Expo Documentation
This works because AuthSession adds +expo-auth-session to the default returnUrl; however, if you provide your own returnUrl, you may want to consider adding a similar identifier to enable you to filter out AuthSession events from other handlers.
🌐
npm
npmjs.com › package › expo-auth-session
expo-auth-session - npm
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 › docs › pages › versions › unversioned › sdk › auth-session.mdx
expo/docs/pages/versions/unversioned/sdk/auth-session.mdx at main · expo/expo
This works because AuthSession adds +expo-auth-session to the default returnUrl; however, if you provide your own returnUrl, you may want to consider adding a similar identifier to enable you to filter out AuthSession events from other handlers.
Author   expo
🌐
GitHub
github.com › expo › expo › blob › main › docs › pages › versions › v51.0.0 › sdk › auth-session.mdx
expo/docs/pages/versions/v51.0.0/sdk/auth-session.mdx at main · expo/expo
An open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web. - expo/docs/pages/versions/v51.0.0/sdk/auth-session.mdx at main · expo/expo
Author   expo
🌐
Expo Documentation
docs.expo.dev › guides › authentication
Authentication with OAuth or OpenID providers - Expo Documentation
Most providers use the OAuth 2 standard for secure authentication and authorization. In the authorization code grant, the identity provider returns a one-time code.
🌐
GitHub
github.com › expo › expo › blob › master › docs › pages › versions › unversioned › sdk › auth-session.md
expo/docs/pages/versions/unversioned/sdk/auth-session.md at master · expo/expo
This works because AuthSession adds +expo-auth-session to the default returnUrl; however, if you provide your own returnUrl, you may want to consider adding a similar identifier to enable you to filter out AuthSession events from other handlers.
Author   expo
🌐
CodeSandbox
codesandbox.io › examples › package › expo-auth-session
expo-auth-session examples - CodeSandbox
docs.expo.dev/versions/latest/sdk/auth-session · github.com/expo/expo · github.com/expo/expo/issues ·
🌐
GitHub
github.com › expo › expo › issues › 21437
After upgrading the expo-auth-session to 4, an error occurs when calling authUrl with startAsync. · Issue #21437 · expo/expo
January 17, 2023 - But an error occurred only on IOS ... [email protected] like below. If I removed redirected_to from url, then I cannot back to app after authentication. expo-env-info 1.0.5 environment info: System: OS: macOS 12.5 Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.13.1 - ~/.nvm/versions/node/v16....
Published   Feb 28, 2023
🌐
GitHub
github.com › expo › expo › blob › main › packages › expo-auth-session › CHANGELOG.md
expo/packages/expo-auth-session/CHANGELOG.md at main · expo/expo
This version does not introduce any user-facing changes. Allow prompt parameter of AuthRequest to accept multiple values as an array (#32373 by @Nkzn) Add missing react/react-native peer dependencies. (#30573 by @byCedric) Add basic support for using in API routes. (#31480 by @EvanBacon) Use getRandomValues from expo-crypto (#22608 by @LinusU)
Author   expo
Find elsewhere
🌐
GitHub
gist.github.com › jdthorpe › aaa0d31a598f299a57e5c76535bf0690
expo-auth-session example · GitHub
Thank you for sharing this! Works great with Auth0, within a few modifications (endpoint, clientId, and setting an appropriate path in makeRedirectUri).
🌐
GitHub
github.com › expo › expo › tree › main › packages › expo-auth-session
expo/packages/expo-auth-session at main · expo/expo
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.
Author   expo
🌐
Reddit
reddit.com › r/expo › expo expo-auth-session & google calendar oauth setup
r/expo on Reddit: Expo expo-auth-session & Google Calendar OAuth setup
February 8, 2025 -

I’m working on integrating Google Calendar OAuth into my React Native app using Expo, and I’m running into an issue where the redirect URI returned by makeRedirectUri({ useProxy: true }) is wrong — it’s always exp://127.0.0.1:8081, even though I’m expecting the Expo proxy URI (e.g. https://auth.expo.io/@username/myapp) to be returned.

I’ve been debugging this for hours and would really appreciate any advice or insight.

Some Context:

I’m using expo-auth-session version ~5.5.2 My app is built with Expo Router and uses OAuth to Google Calendar I want to allow users to connect their Google Calendar and add events from our app I’m using web-based OAuth, not direct sign-in or server-side flows Running locally via expo & Android studio

This is my code snippet:

import { makeRedirectUri, useAuthRequest, ResponseType } from 'expo-auth-session'; import * as WebBrowser from 'expo-web-browser'; import { useEffect } from 'react'; import config from '@/config';

WebBrowser.maybeCompleteAuthSession();

const discovery = { authorizationEndpoint: 'https://accounts.google.com/o/oauth2/v2/auth', tokenEndpoint: 'https://oauth2.googleapis.com/token', };

export function useGoogleAuth() { const redirectUri = makeRedirectUri({ useProxy: true, scheme: 'my app name', });

console.log('[useGoogleAuth] redirectUri =', redirectUri);

const [request, response, promptAsync] = useAuthRequest( { clientId: config.googleClientId, scopes: ['https://www.googleapis.com/auth/calendar.events'], redirectUri, responseType: ResponseType.Code, extraParams: { access_type: 'offline', prompt: 'consent', }, }, discovery );

useEffect(() => { console.log('[useGoogleAuth] response =', response); }, [response]);

return { promptAsync, request, response }; }

And yes I added authorized uris and authorized test users in Google cloud console.

I also added the redirect URI: https://auth.expo.io/@myusername/myapp to google.

My questions: • Why is makeRedirectUri({ useProxy: true }) still giving me exp://127.0.0.1:8081? • Is there some config I’m missing in app.json, expo-router, or somewhere else? • Should I upgrade expo-auth-session or use a different method to get the correct proxy URI?

Thanks

🌐
GitHub
github.com › TransformCore › expo-auth-session
GitHub - TransformCore/expo-auth-session: A fork of the expo-auth-session module to support Auth Code with PKCE, and token refresh.
A fork of the expo-auth-session module to support Auth Code with PKCE, and token refresh. - TransformCore/expo-auth-session
Author   TransformCore
🌐
Stack Overflow
stackoverflow.com › questions › tagged › expo-auth-session
Newest 'expo-auth-session' Questions - Stack Overflow
This might be a silly question, but still. 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, ...
🌐
Expo Documentation
docs.expo.dev › develop › authentication
Authentication in Expo and React Native apps - Expo Documentation
Passkeys offer a seamless and secure experience, but they require a user to already be authenticated before registering one. They also require extra configuration if you're not using a provider that handles them for you. React Native passkey support: react-native-passkeys · Native passkey support with Clerk: Clerk Passkeys for Expo · This guide covers a lot of ground, from basic email and password flows to fully custom OAuth implementations, session management, and modern methods like biometrics and passkeys.
🌐
Expo Documentation
docs.expo.dev › router › advanced › authentication
Authentication in Expo Router - Expo Documentation
How to implement authentication and protect routes with Expo Router. ... Note: This guide requires SDK 53 and later. For the previous version of this guide see Authentication (redirects).
🌐
Better Auth
better-auth.com › docs › integrations › expo
Expo Integration | Better Auth
To make authenticated requests to your server that require the user's session, you have to retrieve the session cookie from SecureStore and manually add it to your request headers.
🌐
Npm
npm.io › package › expo-auth-session
Expo-auth-session NPM | npm.io
Check Expo-auth-session 6.0.3 package - Last release 6.0.3 with MIT licence at our NPM packages aggregator and search engine.