Usa IA para integrar Auth0
Usa IA para integrar Auth0
Si usas un asistente de código con IA, como Claude Code, Cursor o GitHub Copilot, puedes añadir la autenticación de Auth0 automáticamente en minutos mediante 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á
react-native-auth0, configurará las dependencias nativas y preparará tu flujo de autenticación. Documentación completa de agent skills →Primeros pasos
Crea un proyecto nuevo de React Native
Cree un nuevo proyecto de React Native para este inicio rápido.En su terminal:Configura tu proyecto con:
- Nombre:
Auth0ReactNativeSample - Nombre del paquete:
com.auth0.samples.reactnative
Instala el SDK de Auth0
Agrega el SDK de Auth0 para React Native a tu proyecto.Para iOS, instala las dependencias nativas:
Configure su aplicación de Auth0
Cree y configure una aplicación de Auth0 para que funcione con su aplicación de React Native.URL permitidas para cierre de sesión:Reemplace
- Vaya al Auth0 Dashboard
- Haga clic en Applications > Applications > Create Application
- En la ventana emergente, escriba un nombre para su aplicación (p. ej.,
Auth0 React Native Sample), seleccioneNativecomo tipo de aplicación y haga clic en Create - Vaya a la pestaña Settings de la página Application Details
- Tome nota de los valores de dominio y ID de cliente
{yourDomain} por su 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 su aplicación después de autenticarse. Si no hay 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 su aplicación.Allowed Logout URLs son esenciales para ofrecer una experiencia fluida al cerrar sesión. Si no hay una URL que coincida, los usuarios no serán redirigidos de vuelta a su aplicación después de cerrar sesión y, en su lugar, permanecerán en una página genérica de Auth0.El esquema de la URL incluye
.auth0 después de su identificador de paquete para garantizar que el callback se dirija a su aplicación específica. Para este inicio rápido, el identificador de paquete es org.reactjs.native.example.auth0reactnativesample.Configurar plataformas nativas
Configure tanto iOS como Android para gestionar el callback de autenticación.Configuración de Android:Abra Reemplace Abra
android/app/build.gradle y agregue los placeholders del Manifest dentro de defaultConfig:android/app/build.gradle
{yourDomain} por su dominio de Auth0 (por ejemplo, dev-abc123.us.auth0.com).Configuración de iOS:- AppDelegate.mm (Objective-C)
- AppDelegate.swift (Swift)
Abra
ios/Auth0ReactNativeSample/AppDelegate.mm y agregue el método para gestionar URL:ios/Auth0ReactNativeSample/AppDelegate.mm
ios/Auth0ReactNativeSample/Info.plist y agregue el esquema de URL. Agregue esto antes de la etiqueta de cierre </dict>:ios/Auth0ReactNativeSample/Info.plist
El esquema de URL usa tu identificador de bundle con
.auth0 al final. Esto garantiza que la devolución de llamada se dirija a tu aplicación específica una vez completada la autenticación en el navegador.Configurar el componente App
Configura el componente principal de tu aplicación según el enfoque de implementación que hayas elegido.
- Basado en Hooks (con Provider)
- Basado en clases (sin Provider)
Reemplaza el contenido de Reemplaza
App.tsx y envuelve tu aplicación con el componente Auth0Provider:App.tsx
{yourDomain} por tu dominio de Auth0 y {yourClientId} por tu ID de cliente del Auth0 Dashboard.Implementa Login y Logout
Crea un componente de pantalla que gestione el Login y el Logout. Puedes elegir entre un enfoque basado en hooks (recomendado) o uno basado en clases.
- Con Hooks (recomendado)
- Basado en clases
Crea
src/MainScreen.tsx con el hook useAuth0:src/MainScreen.tsx
El método
authorize() (hooks) o auth0.webAuth.authorize() (class) abre 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.Ejecuta tu aplicación
Compila y ejecuta la aplicación de React Native en un dispositivo o emulador.Para iOS (requiere macOS):Para Android:Flujo esperado:
- La app se inicia mostrando el botón “Iniciar sesión”
- Toca Iniciar sesión → El navegador se abre con Auth0 Universal Login
- Completa el proceso de acceso (regístrate o inicia sesión)
- El navegador se cierra → Vuelves a la app automáticamente
- Se muestra el perfil del usuario con nombre, correo electrónico y avatar
Punto de controlAhora deberías tener una experiencia de Login de Auth0 completamente funcional en ejecución en tu dispositivo o emulador. La aplicación usa autenticación segura en el navegador y administra automáticamente las credenciales.
Solución de problemas y aspectos avanzados
Problemas comunes y soluciones
Problemas comunes y soluciones
Error “Callback URL mismatch”
Solución:- Verifica que la URL exacta (incluido el sufijo
.auth0) esté en Allowed Callback URLs en tu Auth0 Dashboard - Asegúrate de haber agregado las URL de iOS y Android
- Comprueba que
{yourDomain}se haya sustituido por tu dominio real de Auth0
La aplicación no vuelve después del Login (iOS)
Solución:- Comprueba que
Info.plistincluya la entradaCFBundleURLSchemescon$(PRODUCT_BUNDLE_IDENTIFIER).auth0 - Verifica que
AppDelegate.mmincluya el método para gestionar la URL - Asegúrate de que el esquema de URL coincida con tu identificador de bundle
La compilación de Android falla
Solución:- Agrega los placeholders del manifiesto
auth0Domainyauth0Schemeabuild.gradle - Sincroniza el proyecto con los archivos de Gradle
- Limpia la compilación:
./gradlew clean
Error “PKCE not allowed”
Solución:- Ve a Auth0 Dashboard → Applications → Your Application
- Cambia el tipo de aplicación a Native
- Guarda los cambios y vuelve a intentarlo
La instalación de Pod falla (iOS)
Solución:- Actualiza CocoaPods:
sudo gem install cocoapods - Actualiza el repositorio de pods:
pod install --repo-update - Si el problema persiste, elimina
Podfile.locky la carpetaios/Pods, y luego ejecutapod installde nuevo
Error de cancelación del usuario
Manéjalo correctamente en tu función de Login:Alerta de iOS
En iOS, los usuarios ven un cuadro de diálogo de permisos: “App Name” Wants to Use “auth0.com” to Sign In. Este es el comportamiento esperado deASWebAuthenticationSession. Los usuarios deben tocar Continue para continuar.Para personalizar este comportamiento, puedes usar sesiones efímeras (desactiva el SSO):Obtener tokens de acceso
Obtener tokens de acceso
Usa el método
getCredentials() para obtener tokens para llamadas a la API:Comprobar el estado de autenticación al iniciar la aplicación
Comprobar el estado de autenticación al iniciar la aplicación
Usa
hasValidCredentials() para comprobar si el usuario ya inició sesión:Implementación en producción
Implementación en producción
Antes de implementar en producción
Usa URL de callback con HTTPS para mejorar la seguridad:- Settings → Advanced Settings → Device Settings
- Agrega la huella digital SHA-256 de tu aplicación
- Agrega la capacidad Associated Domains en Xcode
- Agrega
webcredentials:{yourDomain}a Associated Domains
localAuthenticationOptions en Auth0ProviderRevisa la configuración de seguridad en Auth0 Dashboard:- Habilita OIDC Conformant en Advanced Settings
- Configura Token Expiration según corresponda
- Configura Brute Force Protection
- Haz pruebas en varios dispositivos y versiones del sistema operativo
- Implementa un manejo de errores adecuado para fallos de red