Requisitos previos: Antes de comenzar, asegúrate de tener instalado lo siguiente:
- Flutter 3.0 o una versión posterior configurada para web
- Dart 2.17 o una versión posterior
- Conocimientos básicos de la CLI de Flutter
flutter --versionSi no tienes una aplicación web de Flutter, crea una: flutter create --platforms=web my_appPrimeros pasos
Crear un nuevo proyecto
Cree una nueva aplicación web de Flutter para esta guía de inicio rápido:Abre el proyecto:
Instala el SDK de Auth0 para Flutter
Agrega el SDK de Auth0 para Flutter a tu proyecto con la CLI de Flutter:El SDK requiere que la biblioteca Auth0 SPA JS esté cargada en su aplicación web. Agregue la siguiente etiqueta
<script> a su archivo web/index.html, antes de la etiqueta de cierre </body>:web/index.html
Configura tu aplicación de Auth0
A continuación, debes crear una nueva aplicación en tu inquilino de Auth0.Puedes hacerlo automáticamente ejecutando un comando de la CLI o manualmente desde el Dashboard:
- CLI
- Dashboard
Ejecuta el siguiente comando de shell en el directorio raíz de tu proyecto para crear una aplicación en Auth0:macOS / Linux:Windows (PowerShell):Copia los valores de domain y client_id de la salida. Los usarás en el siguiente paso.
Si todavía no has instalado Auth0 CLI, ejecuta:Luego, autentícate con
auth0 login.Configura el SDK
Cree una instancia de la clase
Auth0Web con los valores de dominio e ID de cliente de Auth0.Cree un nuevo archivo: lib/auth0_service.dartlib/auth0_service.dart
Crear la vista principal
Reemplaza el contenido de Puntos clave:
lib/main.dart con el siguiente código:lib/main.dart
- Se invoca
onLoad()eninitState()para gestionar la callback de autenticación loginWithRedirect()redirige a los usuarios a la página de Universal Login de Auth0logout()cierra la sesión y redirige a tu aplicación- Se accede a la información del perfil de usuario mediante
credentials.user
ComprobaciónAhora deberías tener una página de inicio de sesión de Auth0 completamente funcional ejecutándose en http://localhost:3000. Al:
- Hacer clic en “Log In” - se te redirige a la página de Universal Login de Auth0
- Completar la autenticación - se te redirige de vuelta a tu aplicación
- Hacer clic en “View Profile” - ves la información de tu usuario
- Hacer clic en “Log Out” - cierras sesión tanto en tu aplicación como en Auth0
Uso avanzado
Llamar a API protegidas
Llamar a API protegidas
Configura el SDK para solicitar un token de acceso para llamar a API protegidas:Usa el token de acceso para llamar a tu API:
lib/auth0_service.dart
Parámetros de inicio de sesión personalizados
Parámetros de inicio de sesión personalizados
Pasa parámetros adicionales al flujo de inicio de sesión:
Manejo de errores de inicio de sesión
Manejo de errores de inicio de sesión
Implementa un manejo de errores adecuado para los fallos de autenticación:
Autenticación silenciosa
Autenticación silenciosa
Comprueba si el usuario ya está autenticado sin mostrar la página de inicio de sesión:
Solución de problemas
Problemas comunes y soluciones
Problemas comunes y soluciones
Error de “Callback URL mismatch”
Problema: La URL de callback no coincide con la configurada en Auth0.Solución: Asegúrate de que la URL de callback en tu código coincida exactamente con la configurada en Auth0 Dashboard:- Ve a Auth0 Dashboard → Applications → Your App → Settings
- Verifica que Allowed Callback URLs incluya
http://localhost:3000 - La URL debe coincidir exactamente (sin barras diagonales finales, a menos que también las incluyas en el código)
La autenticación no funciona
Problema: El botón de inicio de sesión no hace nada o la autenticación falla.Solución: Verifica que el script de Auth0 SPA JS se cargue enweb/index.html:</body>.El usuario cierra sesión después de recargar la página
Problema: La sesión del usuario no se mantiene entre recargas de la página.Soluciones:- Asegúrate de que Allowed Web Origins incluya
http://localhost:3000en Auth0 Dashboard - Usa
cacheLocation: CacheLocation.localStorageal crear una instancia de Auth0Web - Verifica que se llame a
onLoad()en elinitState()de tu widget
Error de “Invalid state”
Problema: El estado no coincide durante el callback de autenticación.Soluciones:- Borra la caché del navegador y el almacenamiento local
- Asegúrate de no abrir varias pestañas durante el inicio de sesión
- Verifica que la URL de callback sea correcta
Errores de CORS en la consola del navegador
Problema: Errores de uso compartido de recursos entre orígenes cruzados.Solución:- Agrega
http://localhost:3000a Allowed Web Origins en Auth0 Dashboard - Asegúrate de que la aplicación se esté ejecutando en el puerto 3000 (para que coincida con tu configuración)
Próximos pasos
- Inicio rápido para aplicaciones nativas con Flutter - Cree una aplicación móvil nativa con Auth0
- Llamar a APIs protegidas - Use tokens de acceso para llamar a las API de su backend
- Personalizar Universal Login - Personalice la experiencia de inicio de sesión con su marca
- Agregar conexiones sociales - Habilite el inicio de sesión con Google, GitHub y otros proveedores sociales
- Implementar MFA - Agregue autenticación multifactor
Recursos
- Auth0 Flutter SDK GitHub - Código fuente y ejemplos
- Documentación de Flutter - Más información sobre Flutter
- Auth0 Community - Obtén ayuda de la comunidad