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 minutos con 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 Vue 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 las agent skills de Auth0.
Primeros pasos
Instala el SDK de Auth0 para Vue y los complementos de Capacitor
@capacitor/browser abre la página de Universal Login de Auth0 en el navegador del sistema del dispositivo (SFSafariViewController en iOS, Chrome Custom Tabs en Android) para proporcionar una autenticación segura.@capacitor/app detecta eventos de enlaces profundos para que tu aplicación pueda gestionar el callback de OAuth cuando Auth0 redirige de vuelta tras el Login.Configura tu aplicación de Auth0
A continuación, debes crear una nueva aplicación en tu inquilino de Auth0. Las aplicaciones Ionic Capacitor usan el tipo de aplicación Native con callbacks de esquema de URL personalizado.Tienes tres opciones para configurar tu aplicación de Auth0: usar la herramienta Quick Setup (recomendado), ejecutar un comando de la CLI o configurarla manualmente en el Dashboard:
- Quick Setup (recomendado)
- CLI
- Dashboard
Crea una aplicación Native de Auth0 y obtén tus credenciales.Después de crear tu aplicación, anota los valores de dominio e ID de cliente para el siguiente paso.
También tendrás que configurar las URL de callback y cierre de sesión en el Dashboard. Consulta la configuración de las URL a continuación.
Configura el plugin de Auth0
src/main.ts
useRefreshTokens: true— Los navegadores móviles bloquean las cookies de terceros, por lo que la autenticación silenciosa basada eniframeno funciona. Los Tokens de actualización usan directamente el endpoint/oauth/token.useRefreshTokensFallback: false— Evita que el SDK intente usar la alternativa basada eniframe, que no está disponible en dispositivos móviles.router.isReady().then(...)— Garantiza que Vue Router esté completamente inicializado antes de que el SDK procese el callback de OAuth, lo que evita condiciones de carrera.
Crear componentes de autenticación
Crear archivos de componentesAgrega el siguiente código a los nuevos componentes y actualiza los archivos
App.vue y HomePage.vue existentesEjecute la aplicación
Primero, haga la prueba en el navegador:Para ejecutarlo 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. Solo es necesario hacerlo una vez por plataforma. Asegúrate primero de haber registrado el esquema de URL personalizado para tu plataforma.Punto de controlAhora debería tener una experiencia de Login de Auth0 totalmente funcional en su aplicación Ionic Vue, con Login, cierre de sesión e información del perfil de usuario.
Uso avanzado
Configuración de esquemas de URL personalizados
Configuración de esquemas de URL personalizados
Registre el esquema de URL personalizado de su aplicación para que el sistema operativo pueda redirigir el callback de OAuth de vuelta a su aplicación tras la autenticación.Sustituya Para obtener más información, consulte Create Deep Links to App Content.
iOS
Registre el esquema de URL personalizado enios/App/App/Info.plist:YOUR_PACKAGE_ID por el appId de capacitor.config.ts. Para obtener más información, consulte Defining a Custom URL Scheme.Android
Agregue un filtro de intents aandroid/app/src/main/AndroidManifest.xml, dentro de la etiqueta <activity> principal:Protección de rutas con Vue Router
Protección de rutas con Vue Router
Use el
authGuard integrado del SDK de Auth0 para Vue para proteger las rutas que requieren autenticación:src/router/index.ts
authGuard redirige automáticamente a los usuarios no autenticados a la página de Universal Login de Auth0. Después de iniciar sesión, vuelven a la ruta solicitada originalmente.Llamada a API protegidas
Llamada a API protegidas
Configure el parámetro Luego, use
audience en la configuración de createAuth0 para solicitar tokens de acceso para su API:src/main.ts
getAccessTokenSilently en sus componentes para recuperar tokens y realizar llamadas autenticadas a la API:src/components/ApiCall.vue
Uso del patrón defineComponent
Uso del patrón defineComponent
Si prefieres el patrón explícito El patrón
defineComponent en lugar de <script setup>, así es como se ve el componente LoginButton con este enfoque:src/components/LoginButton.vue
defineComponent requiere registrar explícitamente los componentes hijo y devolver los valores desde la función setup(). Ambos patrones son totalmente compatibles con el SDK de Auth0 para Vue.Problemas comunes y soluciones
Problemas comunes y soluciones
Error de URL de callback no coincidente
Solución: Verifica que la URL de callback en tu Auth0 Dashboard coincida exactamente con la URL construida en tu aplicación. Asegúrate de queYOUR_PACKAGE_ID coincida con el campo appId en tu capacitor.config.ts.Error “PKCE not allowed”
Solución:- Ve a Auth0 Dashboard > Applications > Your Application
- Cambia Application Type a Native
- Establece Token Endpoint Authentication Method en
None - Guarda los cambios y vuelve a intentarlo
SSO no funciona en iOS
El plugin Browser de Capacitor usaSFSafariViewController, que no comparte cookies con Safari en iOS 11+. Si necesitas SSO, usa un plugin compatible que utilice ASWebAuthenticationSession.Login funciona, pero el usuario sigue sin autenticarse después de reiniciar la aplicación
HabilitacacheLocation: 'localstorage' en la configuración de createAuth0 para conservar los tokens entre reinicios de la aplicación. Ten en cuenta las implicaciones de seguridad. El SDK también admite implementaciones de caché personalizadas para un almacenamiento más seguro.El navegador no se cierra después del login
Asegúrate de llamar aBrowser.close() dentro del listener del evento appUrlOpen en tu componente App.vue. En Android, Browser.close() no realiza ninguna acción, por lo que el navegador se cierra automáticamente.La página de login se abre en la aplicación de navegador predeterminada del dispositivo
Si la página de login se abre en Safari o Chrome en lugar de un navegador integrado en la aplicación, asegúrate de pasar el callbackopenUrl a loginWithRedirect y logout. Sin él, el SDK usa window.location.href de forma predeterminada, lo que redirige toda la app fuera de la aplicación.