Usa la IA para integrar Auth0
Usa la 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 usando agent skills.Primero, instala las agent skills de Auth0:Luego, pídele a tu asistente de IA:Tu asistente de IA creará automáticamente tu aplicación de Auth0, obtendrá las credenciales, instalará el SDK de Auth0 para React y los plugins de Capacitor, configurará el deep linking e implementará los flujos de inicio y cierre de sesión con integración con el navegador nativo. Obtén más información sobre Auth0 agent skills.
Primeros pasos
Crear un proyecto nuevo
Crea una nueva aplicación de Ionic React con CapacitorAbre el proyecto
Si ya tienes una aplicación de Ionic React, asegúrate de que Capacitor esté habilitado. Puedes agregarlo con
ionic integrations enable capacitor y luego npx cap init.Instala el SDK de React para Auth0 y los complementos de Capacitor
La plantilla inicial de Ionic puede generar Luego, instala el SDK de Auth0 y los complementos de Capacitor:
react@19.0.0, que no es compatible con el SDK de React de Auth0. Primero, asegúrate de tener una versión compatible de React:@auth0/auth0-react: Proporciona hooks y componentes de React para la autenticación con Auth0@capacitor/browser: Abre la página de Login en el navegador del sistema del dispositivo (SFSafariViewController en iOS, Chrome Custom Tabs en Android)@capacitor/app: Gestiona los callbacks de enlaces profundos cuando Auth0 redirige a tu aplicación
El plugin Browser de Capacitor en iOS usa
SFSafariViewController, que en iOS 11+ no comparte cookies con Safari en el dispositivo. Esto significa que SSO no funcionará en esos dispositivos. Si necesitas SSO, usa un plugin compatible que utilice ASWebAuthenticationSession.Configura tu aplicación de Auth0
A continuación, debes crear una nueva aplicación en tu tenant de Auth0 y agregar las variables de entorno a tu proyecto.Tienes tres opciones para configurar tu aplicación de Auth0: usar la herramienta Quick Setup (recomendado), ejecutar un comando de CLI o configurar manualmente a través del Dashboard.
A lo largo de este inicio rápido,
YOUR_PACKAGE_ID es el ID de paquete de su aplicación. Este corresponde al campo appId en su archivo capacitor.config.ts (por ejemplo, io.ionic.starter). Consulte el esquema de configuración de Capacitor para obtener más información.- Configuración rápida (recomendada)
- CLI
- Dashboard
Cree una aplicación en Auth0 y copie el archivo Asegúrate también de que Application Type esté configurado como Native y de que Token Endpoint Authentication Method esté configurado como None.
.env rellenado previamente con los valores de configuración correctos.Después de crear la aplicación, vaya a Settings en el Auth0 Dashboard y actualice Allowed Callback URLs y Allowed Logout URLs para sustituir YOUR_PACKAGE_ID por su ID de paquete real y YOUR_AUTH0_DOMAIN por su dominio de Auth0:Configura el Auth0Provider
Abre
src/main.tsx y envuelve el componente App con Auth0Provider. Los ajustes específicos para móviles useRefreshTokens y useRefreshTokensFallback son obligatorios para las aplicaciones de Ionic en iOS y Android.src/main.tsx
useRefreshTokens: Obligatorio para Ionic en Android e iOS. Los navegadores móviles bloquean las cookies de terceros, por lo que el SDK usa tokens de actualización en lugar de autenticación silenciosa basada eniframe.useRefreshTokensFallback: Debe serfalsepara evitar que el SDK intente usar autenticación silenciosa basada eniframe, ya que no está disponible en dispositivos móviles.authorizationParams.redirect_uri: Usa el ID del paquete como esquema de URL personalizado para que el sistema operativo pueda dirigir el callback de Auth0 a tu aplicación.
Crear los controladores de Login, Logout, Profile y callback
Crear archivosY agrega los siguientes fragmentos de códigoEl callback
openUrl en LoginButton y LogoutButton utiliza el plugin Browser de Capacitor para abrir las páginas de Login y Logout de Auth0 en el componente de navegador del sistema del dispositivo, en lugar de abandonar la aplicación por completo.El componente App escucha el evento appUrlOpen, que se activa cuando Auth0 redirige a tu aplicación mediante el esquema de URL personalizado. Llama a handleRedirectCallback para intercambiar el código de autorización por tokens y, luego, cierra el navegador.De forma predeterminada, el método
loginWithRedirect del SDK usa window.location.href para ir a la página de Login, lo que abre la aplicación de navegador predeterminada del dispositivo. Configurar openUrl para usar Browser.open mantiene el flujo de autenticación dentro del contexto de tu aplicación para ofrecer una mejor experiencia de usuario.Ejecuta tu aplicación
Primero, prueba en el navegadorPara ejecutar en un dispositivo o simulador, primero agrega las plataformas nativas:Luego, compila, sincroniza y ejecuta:
Debes agregar las plataformas nativas con
npx cap add antes de poder ejecutarlas. Esto solo debe hacerse una vez por plataforma. Después, npx cap sync copia los recursos web compilados y actualiza los plugins nativos.Punto de controlAhora deberías tener un inicio de sesión de Auth0 completamente funcional en tu aplicación Ionic. Al ejecutarla en un dispositivo, al tocar “Iniciar sesión” se abre la página de Universal Login de Auth0 en el navegador del sistema y, después de autenticarte, se te redirige a tu aplicación, donde se muestra el perfil del usuario.
Uso avanzado
Configuración del esquema de URL personalizado (iOS y Android)
Configuración del esquema de URL personalizado (iOS y Android)
Para que los callbacks de Auth0 funcionen en dispositivos, registra el ID de tu paquete como un esquema de URL personalizado en cada plataforma.iOS — agrega esto a Android — agrega un filtro intent dentro de la Reemplaza
ios/App/App/Info.plist:ios/App/App/Info.plist
<activity> principal en android/app/src/main/AndroidManifest.xml:android/app/src/main/AndroidManifest.xml
io.ionic.starter por el valor real de appId en capacitor.config.ts.Para obtener más información, consulta Defining a Custom URL Scheme para iOS o Create Deep Links to App Content para Android.
Protección de rutas con Ionic Router
Protección de rutas con Ionic Router
Usa el estado de autenticación de Auth0 para proteger rutas específicas en tu aplicación Ionic:El HOC
src/App.tsx
withAuthenticationRequired redirige automáticamente a los usuarios no autenticados a la página de Login de Auth0 cuando intentan acceder a una ruta protegida.Llamadas a APIs protegidas
Llamadas a APIs protegidas
Configura tu Auth0Provider para incluir la audiencia de una API y usa el método Luego, realiza llamadas autenticadas a la API desde tus componentes:
getAccessTokenSilently para obtener tokens de acceso para tu backend:src/main.tsx
src/ApiCall.tsx