ajolote 0.2.1
ajolote: ^0.2.1 copied to clipboard
Cliente Flutter para el servicio de autenticación centralizado de Anfibia/4Quinas. Multi-tenant, JWT, OTP por SMS, biometría.
0.2.1 - 2026-05-24 #
Changed #
- Rewrote README with clear quickstart, feature overview, and installation instructions.
- Renamed
AppIdenum to a plainStringparameter for generality across consumers. - Translated public-facing doc comments to English.
0.2.0 - 2026-05-18 #
Added #
- Refresh automático del access token con dedupe de concurrencia (
TokenRefresher).AjoloteClient.getValidToken()devuelve un JWT siempre fresco.- N requests concurrentes con JWT expirado disparan 1 sola llamada de refresh.
- OAuth social (Google) con deep links + validación de state contra CSRF.
- Nuevo módulo
SocialAuthconSocialAuthConfigySocialProvider. DeepLinkListenerabstracto (la app provee implementación conapp_links).- El SDK NO depende de
app_linksniurl_launcher— pattern de factory.
- Nuevo módulo
- Contract compartido con TS: cuando agregás un
AppIdo cambiásAuthUser, los tests de conformance del paquete@anfibia/ajolote-schemasfallan si los modelos Dart y TS divergen.
Changed #
AjoloteClientahora maneja dos tokens internamente: session token (largo, en SecureStore) y access token JWT (corto, en memoria).- El access token se refresca automáticamente cuando le quedan <60s de vida (configurable con
refreshThreshold).
Migration desde 0.1.0 #
Si usabas auth.http.getToken() para firmar requests a tu API, cambiar a:
// Antes
final token = await auth.http.getToken();
// Después
final token = await auth.getValidToken();
getValidToken() lanza AuthException(expiredToken) si la sesión también expiró — usar try/catch y redirigir a login.
0.1.0 - 2026-05-18 #
Initial release #
AjoloteClientcon sign-in/sign-up/sign-out por email + password.PhoneAuthcon flujo OTP por SMS (compatible con pluginphoneNumberde Better Auth + Infobip).BiometricAuthcon factory pattern (la app proveelocal_auth).ServerAuthClientpara autenticación S2S desde backends Dart.AuthProvider(InheritedNotifier) yAuthBuilderpara Flutter idiomático.- Persistencia segura con
flutter_secure_storage(Keychain/Keystore). - Errores normalizados con
AuthException+AuthErrorCode.