Saltar al contenido principal
Esta guía de inicio rápido es para aplicaciones de Expo. Para integrar Auth0 en tu aplicación de React Native, consulta la guía de inicio rápido de React Native.

Usa IA para integrar Auth0

Si usas un asistente de programación con IA como Claude Code, Cursor o GitHub Copilot, puedes añadir la autenticación de Auth0 automáticamente en cuestión de minutos con agent skills.Instala:
Luego pídele a tu asistente de IA:
Tu asistente de IA creará automáticamente tu aplicación en Auth0, obtendrá las credenciales, instalará el SDK react-native-auth0, configurará el plugin de Expo e implementará los flujos de inicio y cierre de sesión. Documentación completa de agent skills →

Primeros pasos

1

Crea un nuevo proyecto con Expo

Cree un nuevo proyecto de Expo para esta guía de inicio rápido.En su terminal:
Esto crea una aplicación mínima de Expo con la versión más reciente del SDK, lista para integrar módulos nativos. La marca --template blank proporciona un punto de partida limpio, sin código repetitivo adicional.
Este SDK NO es compatible con Expo Go porque requiere código nativo personalizado. Debe usar npx expo run:ios o npx expo run:android para crear una build de desarrollo.
2

Instala el SDK de Auth0

Añade el SDK de Auth0 para React Native a tu proyecto.
Usar npx expo install garantiza la compatibilidad de versiones con tu versión del SDK de Expo. El SDK se configura automáticamente mediante el sistema de plugins de Expo.
3

Configura el plugin de Expo

Configura el plugin de Auth0 para gestionar automáticamente la configuración nativa de iOS y Android.Actualiza tu app.json para incluir el plugin de Auth0:
app.json
Reemplaza {yourDomain} por tu dominio de Auth0 (lo obtendrás en el siguiente paso).
Importante: Debes definir bundleIdentifier para iOS y package para Android en tu app.json. Estos identificadores son necesarios para que el SDK de Auth0 configure correctamente los proyectos nativos. Si no especificas un esquema personalizado, el SDK usará el identificador del paquete de iOS como esquema de URL.
customScheme debe estar en minúsculas y no puede contener caracteres especiales. Este valor se utiliza para construir las URL de devolución de llamada y debe pasarse a los métodos authorize() y clearSession().
4

Configura tu aplicación en Auth0

Crea y configura una aplicación de Auth0 para que funcione con tu aplicación de Expo.
  1. Ve al Auth0 Dashboard
  2. Haz clic en Applications > Applications > Create Application
  3. En la ventana emergente, introduce un nombre para tu aplicación (por ejemplo, Auth0 Expo Sample), selecciona Native como tipo de aplicación y haz clic en Create
  4. Ve a la pestaña Settings en la página de detalles de la aplicación
  5. Anota los valores de dominio y ID de cliente
  6. Actualiza el valor domain en la configuración del plugin de tu app.json con tu dominio de Auth0
Allowed Callback URLs:
URL de cierre de sesión permitidas:
Reemplaza {yourDomain} por tu dominio real de Auth0 (por ejemplo, dev-abc123.us.auth0.com).
Allowed Callback URLs son una medida de seguridad fundamental para garantizar que los usuarios regresen de forma segura a tu aplicación después de autenticarse. Sin una URL que coincida, el proceso de inicio de sesión fallará y los usuarios verán una página de error de Auth0 en lugar de acceder a tu aplicación.Allowed Logout URLs son esenciales para ofrecer una experiencia fluida al cerrar sesión. Sin una URL que coincida, los usuarios no serán redirigidos de vuelta a tu aplicación después de cerrar sesión y, en su lugar, permanecerán en una página genérica de Auth0.El formato de la URL de callback es: {customScheme}://{yourDomain}/{platform}/{bundleIdentifier or packageName}/callback. El esquema de la URL usa el customScheme de tu app.json, pero la ruta siempre contiene el bundleIdentifier (iOS) o package (Android), no el esquema personalizado. Si no especificas un customScheme, el SDK usa {bundleIdentifier}.auth0 / {packageName}.auth0 como esquema de URL de forma predeterminada.
Importante: Asegúrate de que el customScheme de tus URL de callback coincida exactamente con el valor de la configuración del plugin en tu app.json y de que la ruta contenga tu bundleIdentifier (iOS) o package (Android) reales. Si estos valores no coinciden, la autenticación fallará.
5

Configura el componente App

Configura el componente principal de tu aplicación según el enfoque de implementación elegido.
Reemplace el contenido de App.js y envuelva la aplicación con el componente Auth0Provider:
App.js
Reemplaza {yourDomain} por tu dominio de Auth0 y {yourClientId} por tu ID de cliente del Auth0 Dashboard.
Auth0Provider inicializa el SDK y proporciona el contexto de autenticación a todos los componentes secundarios mediante el hook useAuth0. El parámetro customScheme debe coincidir con el valor de la configuración del plugin en tu app.json.
El método authorize() abre el Universal Login de Auth0 en un navegador seguro (ASWebAuthenticationSession en iOS, Chrome Custom Tabs en Android). El método clearSession() cierra la sesión del usuario y borra tanto la sesión del navegador como las credenciales almacenadas. El parámetro customScheme debe coincidir con el valor de la configuración del complemento en app.json.
6

Ejecuta la aplicación

Compila y ejecuta tu aplicación de Expo en un dispositivo o un emulador.Primero, genera los proyectos nativos de iOS y Android:
A continuación, ejecútalo en tu plataforma de destino:Para iOS:
Para Android:
Flujo esperado:
  1. La aplicación se inicia y muestra el botón “Iniciar sesión”
  2. Toca Iniciar sesión → Se abre el navegador con Auth0 Universal Login
  3. Completa el inicio de sesión (regístrate o inicia sesión)
  4. El navegador se cierra → Vuelve a la aplicación automáticamente
  5. Se muestra el perfil del usuario con nombre, correo electrónico y avatar
Si haces cambios en la configuración del plugin en app.json, ejecuta npx expo prebuild --clean para regenerar los proyectos nativos con la configuración actualizada.
El simulador de iOS requiere una cuenta válida de Apple Developer para ASWebAuthenticationSession. Si quieres hacer pruebas en el simulador sin una cuenta, usa un dispositivo físico o un emulador de Android.
Punto de controlAhora deberías tener una experiencia de inicio de sesión con Auth0 totalmente funcional en tu dispositivo o emulador. La aplicación usa autenticación segura en el navegador y gestiona automáticamente las credenciales en el almacenamiento seguro del dispositivo.

Solución de problemas y temas avanzados

”Invariant Violation: Native module cannot be null”

Este error se produce al intentar usar el SDK con Expo Go.Solución:El SDK de Auth0 requiere código nativo personalizado que no está disponible en Expo Go. En su lugar, usa una compilación de desarrollo:

Error de discrepancia en la URL de callback

Solución:Verifica que estos tres elementos coincidan exactamente:
  1. customScheme en la configuración del plugin de app.json
  2. El parámetro customScheme que se pasa a authorize() y clearSession()
  3. Las URL de callback en Auth0 Dashboard (Applications → Your App → Settings → Application URIs)

Error “PKCE not allowed”

Solución:
  1. Ve a Auth0 Dashboard → Applications → Your Application
  2. Cambia el tipo de aplicación a Native
  3. Guarda los cambios y vuelve a intentarlo

Prebuild falla o el plugin no se aplica

Solución:

La compilación de iOS falla con errores de Pod

Solución:

Error de cancelación por parte del usuario

Manéjalo correctamente en tu función de inicio de sesión:

Cuadro de diálogo de alerta en iOS

En iOS, los usuarios ven un cuadro de diálogo de permisos: “App Name” Wants to Use “auth0.com” to Sign In. Este comportamiento es el esperado de ASWebAuthenticationSession. Los usuarios deben tocar Continuar para seguir.Para personalizar este comportamiento, puedes usar sesiones efímeras (desactiva el SSO):
Usa el método getCredentials() para recuperar tokens para llamadas a la API:
Incluye el scope offline_access durante el inicio de sesión para recibir un token de actualización: authorize({customScheme: 'auth0sample', scope: 'openid profile email offline_access'}). Esto permite la renovación automática del token.
Usa hasValidCredentials() para comprobar si el usuario ya inició sesión:
Para las compilaciones de producción, usa EAS Build en lugar de compilaciones de desarrollo locales.Instala EAS CLI:
Crea eas.json en la raíz de tu proyecto:
eas.json
Compila para producción:

Antes de implementar en producción

Usa URL de callback HTTPS para mejorar la seguridad:
Configura Android App Links en Auth0 Dashboard:
  • Settings → Advanced Settings → Device Settings
  • Agrega la huella digital SHA-256 de tu aplicación
Configura iOS Universal Links:
  • Agrega la capacidad Associated Domains en Xcode
  • Agrega webcredentials:{yourDomain} a Associated Domains
Revisa la configuración de seguridad en Auth0 Dashboard:
  • Habilita OIDC Conformant en Advanced Settings
  • Configura Token Expiration según sea necesario
  • Configura Brute Force Protection
  • Prueba en varios dispositivos y versiones del sistema operativo
  • Implementa un manejo de errores adecuado para fallos de red
Para aplicaciones de producción, considera usar URL de callback HTTPS con Universal Links (iOS) y App Links (Android) en lugar de esquemas personalizados para mejorar la seguridad.