Usa IA para integrar Auth0
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
Crea un nuevo proyecto con Expo
Cree un nuevo proyecto de Expo para esta guía de inicio rápido.En su terminal:
Configura el plugin de Expo
Configura el plugin de Auth0 para gestionar automáticamente la configuración nativa de iOS y Android.Actualiza tu Reemplaza
app.json para incluir el plugin de Auth0:app.json
{yourDomain} por tu dominio de Auth0 (lo obtendrás en el siguiente paso).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().Configura tu aplicación en Auth0
Crea y configura una aplicación de Auth0 para que funcione con tu aplicación de Expo.URL de cierre de sesión permitidas:Reemplaza
- Ve al Auth0 Dashboard
- Haz clic en Applications > Applications > Create Application
- En la ventana emergente, introduce un nombre para tu aplicación (por ejemplo,
Auth0 Expo Sample), seleccionaNativecomo tipo de aplicación y haz clic en Create - Ve a la pestaña Settings en la página de detalles de la aplicación
- Anota los valores de dominio y ID de cliente
- Actualiza el valor
domainen la configuración del plugin de tuapp.jsoncon tu dominio de Auth0
{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.Configura el componente App
Configura el componente principal de tu aplicación según el enfoque de implementación elegido.
- Basado en Hooks (con Provider)
- Basado en clases (sin Provider)
Reemplace el contenido de Reemplaza
App.js y envuelva la aplicación con el componente Auth0Provider:App.js
{yourDomain} por tu dominio de Auth0 y {yourClientId} por tu ID de cliente del Auth0 Dashboard.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.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:
- La aplicación se inicia y muestra el botón “Iniciar sesión”
- Toca Iniciar sesión → Se abre el navegador con Auth0 Universal Login
- Completa el inicio de sesión (regístrate o inicia sesión)
- El navegador se cierra → Vuelve a la aplicación automáticamente
- Se muestra el perfil del usuario con nombre, correo electrónico y avatar
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
Problemas comunes y soluciones
Problemas comunes y soluciones
”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:customSchemeen la configuración del plugin deapp.json- El parámetro
customSchemeque se pasa aauthorize()yclearSession() - Las URL de callback en Auth0 Dashboard (Applications → Your App → Settings → Application URIs)
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
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 deASWebAuthenticationSession. Los usuarios deben tocar Continuar para seguir.Para personalizar este comportamiento, puedes usar sesiones efímeras (desactiva el SSO):Recuperar tokens de acceso
Recuperar tokens de acceso
Usa el método
getCredentials() para recuperar 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 con EAS Build
Implementación en producción con EAS Build
Para las compilaciones de producción, usa EAS Build en lugar de compilaciones de desarrollo locales.Instala EAS CLI:Crea Compila para producción:Configura Android App Links en Auth0 Dashboard:
eas.json en la raíz de tu proyecto:eas.json
Antes de implementar en producción
Usa URL de callback 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
- 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