Requisitos previos:
- Flutter SDK 3.24.0+ y Dart 3.5.0+.
- Windows 10 o posterior.
- Visual Studio 2022 con la carga de trabajo Desarrollo de escritorio con C++.
- Una cuenta de Auth0: regístrate gratis.
auth0_flutter 2.1.0-beta.1). La API puede cambiar antes de su disponibilidad general.auth0_flutter mediante OAuth 2.0 Flujo de código de autorización + PKCE.
Primeros pasos
1
Crear un proyecto Flutter para Windows
Crea un nuevo proyecto de Flutter compatible con Windows.Compruebe que Windows esté disponible:Debería ver un dispositivo de escritorio con Windows en la lista.
2
Instalar el SDK de Auth0 para Flutter
Agrega la versión beta del SDK que incluye compatibilidad con Windows:Tu
pubspec.yaml debe incluir:3
Configurar Auth0
Crea o configura una aplicación de Auth0 con las URL de devolución de llamada necesarias para la autenticación en aplicaciones de escritorio de Windows.
- Configuración rápida
- CLI
- Dashboard
Crea una aplicación Native en tu Auth0 Dashboard con esta configuración:
Tus credenciales:
- Domain:
{yourDomain} - Client ID:
{yourClientId}
La URL
auth0flutter://callback es un esquema personalizado que redirige el callback del navegador a tu aplicación de escritorio cuando se completa la autenticación.4
Configurar las variables de entorno
Crea un archivo
.env en la raíz de tu proyecto:Agrega el archivo .env a los recursos de Flutter en pubspec.yaml:5
Configurar el runner de Windows
El flujo de autenticación de Windows requiere configurar el callback en el runner de tu aplicación. El plugin de Flutter no recibe automáticamente del sistema operativo las activaciones del esquema de protocolo, por lo que debes agregar la aplicación de instancia única y el reenvío de URI.Reemplaza el contenido de
windows/runner/main.cpp:Este código:- Garantiza una única instancia mediante un mutex de Windows.
- Captura las URI
auth0flutter://callbackque se pasan como argumentos de línea de comandos. - Reenvía las URI de los inicios secundarios a la instancia en ejecución mediante un named pipe.
- Establece la variable de entorno
PLUGIN_STARTUP_URLpara que el plugin de Auth0 la lea.
6
Registrar el esquema de URL personalizado
Registra Haz doble clic en el archivo Verifica que el esquema funcione:Abre el Símbolo del sistema y ejecuta:La aplicación debería iniciarse (o pasar a primer plano si ya se está ejecutando).
auth0flutter como un esquema de URL personalizado para que Windows dirija los URI de callback a tu aplicación.Crea el archivo windows/url_scheme.reg:Reemplaza C:\path\to\your\app.exe por la ruta real del ejecutable compilado de tu aplicación. Durante el desarrollo, normalmente es:.reg para importarlo en el Registro de Windows.Para distribuirlo en producción, registra el esquema de URL personalizado mediante programación en el instalador de tu aplicación (MSIX, Inno Setup, etc.), en lugar de depender de un archivo
.reg.7
Implementar Login y Logout
Cree
lib/auth_service.dart para gestionar la autenticación de Windows:Actualmente, el SDK de Auth0 Flutter para Windows no admite la administración de credenciales. Debe almacenar manualmente las credenciales si necesita que las sesiones se mantengan entre reinicios de la aplicación.
8
Mostrar información del perfil de usuario
Crea la interfaz de usuario principal de la aplicación en
lib/main.dart:9
Ejecuta la aplicación
Compila y ejecuta la aplicación:Flujo esperado:
- La app se inicia con un botón de Log In.
- Selecciona Log In. Se abrirá en el navegador del sistema la página de Auth0 Universal Login.
- Completa la autenticación en el navegador.
- El navegador redirige a
auth0flutter://callback→ tu app vuelve al primer plano. - Se muestran el nombre, el correo electrónico y la foto de perfil del usuario.
VerificaciónAhora deberías tener una experiencia de inicio de sesión con Auth0 completamente funcional en tu aplicación de Flutter para Windows. La aplicación abre el navegador del sistema para Auth0 Universal Login, recibe el callback mediante el esquema de URL personalizado y muestra el perfil del usuario autenticado.
Solución de problemas y uso avanzado
Problemas comunes y soluciones
Problemas comunes y soluciones
El navegador se abre, pero la aplicación no recibe el callback
Síntoma: El inicio de sesión con Auth0 se completa correctamente en el navegador, pero la aplicación nunca recibe las credenciales.Solución:- Abra el Editor del Registro →
HKEY_CURRENT_USER\Software\Classes\auth0flutter\shell\open\commandy confirme la ruta de su.exe. - Pruebe con
start auth0flutter://testen el Símbolo del sistema; la aplicación debería iniciarse. - Asegúrese de que
windows/runner/main.cppincluya el servidor de canalización y el código del mutex. - Compruebe que no haya instancias antiguas ejecutándose en el Administrador de tareas.
- Vuelva a compilar por completo:
flutter clean && flutter run -d windows.
La autenticación agota el tiempo de espera después de 5 minutos
Síntoma: Parece que Login se queda bloqueado y al final falla.Solución: La aplicación nunca recibió la URI de callback. Verifique lo siguiente:- La entrada del registro apunta a la ruta correcta del ejecutable.
- El nombre del mutex
auth0flutter_single_instance_mutexes coherente enmain.cpp. - Ningún firewall ni antivirus está bloqueando la canalización con nombre.
- Finalice todas las instancias antiguas y vuelva a compilar.
Se inicia una segunda instancia de la aplicación en lugar de reenviar la URI
Síntoma: Se abre una nueva ventana en lugar de que la aplicación existente reciba el callback.Solución:- Finalice todas las instancias en ejecución en el Administrador de tareas.
- Asegúrese de que el nombre del mutex sea coherente en
main.cpp. - Vuelva a compilar con el siguiente comando:
flutter clean && flutter run -d windows.
No se encuentra WindowsWebAuthentication
Síntoma: Error de compilación que hace referencia awindowsWebAuthentication.Solución: Asegúrese de que su pubspec.yaml especifique la versión beta:flutter pub get para actualizar.Error de discrepancia en la URL de devolución de llamada
Síntoma: Error “redirect_uri_mismatch” de Auth0.Solución:- Verifique que Allowed Callback URLs en Auth0 Dashboard → configuración de la aplicación sea exactamente
auth0flutter://callback. - Asegúrese de que el parámetro
appCustomURLen su código coincida:'auth0flutter://callback'. - Compruebe si hay barras diagonales finales o espacios en blanco.
Uso de un servidor intermediario
Uso de un servidor intermediario
Cuando Auth0 redirige directamente a un esquema personalizado, el navegador puede mostrar un aviso o dejar una pestaña en blanco. Para una experiencia más fluida, use un servidor HTTPS intermediario:La página del servidor puede mostrar “Redirigiendo…” y cerrarse sola para ofrecer una experiencia más fluida.
- Configure un endpoint del servidor (por ejemplo,
https://your-app.example.com/callback) que redirija aauth0flutter://callback?code=...&state=.... - En Auth0 Dashboard → configuración de la aplicación, establezca Allowed Callback URLs en
https://your-app.example.com/callback. - Pase ambas URL al método de Login:
Scopes y audiencia personalizados
Scopes y audiencia personalizados
Solicite alcances adicionales o una audiencia de API:Configure la API en Auth0 Dashboard → Aplicaciones > APIs antes de usar el parámetro
audience.Siguientes pasos
- SDK de Auth0 para Flutter en GitHub — código fuente y seguimiento de incidencias.
- SDK de Auth0 para Flutter en pub.dev — referencia de la API.
- Inicio rápido de Flutter (Android, iOS, macOS, Web) — otras guías para plataformas.
- Prácticas recomendadas para el almacenamiento de tokens — gestión segura de credenciales.
- Auth0 Universal Login — personalización de la experiencia de inicio de sesión.