quickauth_flutter 1.1.1
quickauth_flutter: ^1.1.1 copied to clipboard
Flutter phone authentication SDK — passwordless OTP login over SMS & WhatsApp, OneTap silent re-auth, SMS autofill, and DPDP/GDPR consent.
Changelog #
All notable changes to the QuickAuth Flutter SDK are documented here. Format: Keep a Changelog.
1.1.1 — 2026-08-20 #
Changed #
- Package renamed
quickauth→quickauth_flutter. Importpackage:quickauth_flutter/quickauth_flutter.dartand depend onquickauth_flutter:in yourpubspec.yaml. The public API is unchanged.
Added #
- Publishable-key auth mode (preview) —
QuickAuth.init(publishableKey: 'pk_live_…')for a zero-backend quick start. The SDK sends the key asX-QuickAuth-Key(plus Android package / iOS bundle for app-locking) instead of a server-minted session token.onTokenExpiryis now optional; exactly one ofpublishableKeyoronTokenExpirymust be supplied. The session-token flow is unchanged. Note: requires backend publishable-key support to be enabled — inert until you're issued apk_key. - Consent-gated
deviceInfocapture oninitiateandsubmitOtp. When DPDP/GDPR consent has been granted viaQuickAuth.consent, the SDK now attaches an opaquedeviceInfoblock (platform, OS version, locale, timezone, app version/build/id) to the auth request — matching the web and iOS SDKs' V48 audit metadata. Consent off → nothing is sent. Capture failures are swallowed and never block authentication.
Fixed #
- Widened the
package_info_plusconstraint from^5.0.0to>=5.0.0 <11.0.0. The old upper bound (<6.0.0) forced a version conflict for host apps already onpackage_info_plus6.x–10.x, blockingflutter pub get. The SDK only readsPackageInfo.version,.buildNumber, and.packageName, which are unchanged across all supported majors, so no code changes were needed. Verified againstpackage_info_plus10.x (full test suite green).
1.0.0 — 2026-05-23 #
Changed #
- BREAKING:
OtpResultreturned byverifyOTPno longer containsjwt/expiresIn/userId. QuickAuth is a verification provider, not an identity provider — we tell you whether the phone was verified and return arequestId. ForwardrequestIdto your own backend, which confirms server-to-server viaGET /v1/auth/status?requestId=...and mints its own session JWT against its own user table. See https://quickauth.in/docs/backend- class OtpResult { String jwt; int expiresIn; String? userId; } + class OtpResult { bool verified; String requestId; String message; } - BREAKING:
QuickAuthLoginButton.onSuccesssignature changed fromvoid Function(String jwt)tovoid Function(String requestId). The widget now gates onresult.verifiedinternally and surfacesresult.messagethroughonErroron failure.
0.2.0 — 2026-04-28 #
Changed #
- BREAKING:
QuickAuth.initnow takes aTokenProvider onTokenExpirycallback instead ofpublicKey. The customer's backend mints 10-minute ephemeral session JWTs via server-to-serverPOST /v1/sdk/sessionand the SDK uses them asAuthorization: Bearer <sessionToken>. Twilio-Verify pattern — the client secret never lives on-device. x-quickauth-keyheader replaced with standardAuthorization: Bearer.
Added #
TokenManagerwith JWTexpparsing, 30s pre-expiry refresh window, single-flight refresh coalescing, and 401 → invalidate+retry handling.- Optional
initialToken,unsafeDirectClientId,unsafeDirectClientSecretinit parameters. The unsafe-direct escape hatch prints a console warning and is documented as trusted-enterprise only. - New
test/token_manager_test.dartcovering refresh, single-flight, invalidation, malformed JWT, and 401 retry.
0.1.0 — 2026-04-28 #
Added #
- Initial public release.
QuickAuth.initfor one-time configuration.- Headless API:
QuickAuth.auth.startOTP,verifyOTP,observeOTP,startWhatsAppLogin. - Component API:
QuickAuthLoginButton,QuickAuthOtpField. - Attribution:
captureLaunch,trackConversion, browser-cookie / launch-URL qa_clid resolution. - Consent gate (
QuickAuth.consent.set/get) — DPDP / GDPR friendly. - Android plugin:
SmsRetrieverintegration via MethodChannelio.quickauth/sms_retriever;getAppHashhelper. - iOS plugin: no-op shim — autofill driven by
TextField.textContentType = .oneTimeCodeon the Dart side.