authyo_plugin 1.1.2
authyo_plugin: ^1.1.2 copied to clipboard
Add secure, multi-channel MFA (SMS, WhatsApp, Email, Call) to your Flutter app with Authyo. Fast, simple, and flexible.
1.1.2 - 2026-09-19 #
Added #
- OTP screen now has everything the web widget shows: the draining expiry bar (
OTP expires in m:ss, blue → amber → red), theN of M attempts remainingpill, the resend cooldown bar with a Resend OTP button that unlocks when it ends, and the inlineInvalid OTP. Please try again.line under the boxes. - Lockout after too many wrong codes: the dialog shows the server's retry time and closes;
onVerificationCompletegets the failure withAuthyoResult.attempts.lockedOut == true. AuthyoResult.attempts(AuthyoAttempts:remaining,max,retryAfterSeconds) on send and verify results for hosts drawing their own UI. Needs the matching Authyo server release for the counters to be present; without them the pill is simply not shown.- New style slots for custom renderers:
progressBar,attemptsPill,errorText,verifiedIdentityIcon;statusTexttakescolor/weight;sentToRowtakesverified. - Dashboard "Social Button Size" (Layout tab): small icon buttons in a row, or one stacked full-width button per provider with icon + name (
AuthyoTheme.socialButtonsFullWidth, drawn with each style'ssocialButtonslot). - Dashboard "Social Button Style": the social login buttons get their own corner shape — rectangular, rounded or pill (a circle for the small icon buttons), same three shapes as the action buttons.
AuthyoTheme.socialButtonShape/AuthyoStyle.socialButtonRadius; every design style honours it. Apps configured before the setting existed keep following the action button shape.
Fixed #
- Logo now matches the web widget: with no dashboard logo the dialog loads the server's default logo (
<server>/image/landing/logo.png, the same image the widget shows) at the widget's 140px width, and the footer shows "Powered by" with that logo instead of plain text. The bundled copy (now the full logo with the Iron Shield wordmark; the old one was a cropped mark) is only the offline fallback.hideBrandingstill removes the footer line. - Verified state shows the ticked envelope / phone icon next to the identity, like the widget.
Changed #
VerificationController.resendtakes a nullable channel (null = repeat the current channel).
1.1.1 - 2026-09-16 #
Added #
- Sign in with Apple appears in the dialog when configured on the dashboard (
AuthyoSocialProvider.apple); the backend's Apple callback now returns to the app viaauthyo://oauth/callbacklike the other providers.
Fixed #
- Neumorphism: the input's pressed-in edges are drawn over the configured input colour (the field's own fill used to cover them), with the web widget's fixed 9px edges.
- Gradients that faded to
Colors.transparentrendered a grey band on Impeller (Android/iOS); they now fade to the same colour at alpha 0 (Neumorphism inset, Claymorphism highlight, Skeuomorphism gloss/well).
[1.1.1] - 2026-09-18 #
Fixed #
- Default server URL is now
https://app.authyo.io. The previous default (https://authyo.io) redirects API calls to a 404 page, so apps that did not passbaseUrltoinit()could not send OTPs.
Changed #
- Social login buttons draw the same brand logos as the web widget (Google, Microsoft, GitHub, LinkedIn, Apple), bundled under
res/logos/so they render offline. A dashboard-provided icon URL still takes precedence; the coloured initial is now only a last-resort fallback.
1.1.0 - 2026-09-12 #
Added #
- Seven selectable design styles for the built-in dialog: Flat (default), Flat 2.0, Minimalism, Skeuomorphism, Claymorphism, Glassmorphism, Neumorphism (
AuthyoDesignStyle). AuthyoTheme— colours, texts, logo, button shape, layout and resend timer, mirroring the dashboard customization; mergeable so dashboard values and local overrides layer cleanly.- Remote configuration: the SDK fetches the dashboard's design style, customization, enabled channels and social logins (
AuthyoService.loadConfig()), caches them on device and refreshes in the background. The OTP flow never blocks on it. - Social login (Google, Microsoft, GitHub, LinkedIn) inside the dialog and via
AuthyoService.socialLogin(), using the system browser and theauthyo://oauth/callbackscheme.onSocialLoginlets host apps plug in native SDKs. init()options:designStyle,theme,onSocialLogin,prefetchConfig;sendOtp()options:designStyle,theme.requestOtp()(send without UI),showVerificationDialog(),setDesignStyle(),setTheme(),setShowVerificationDialog().- The dialog follows the web widget's OTP flow step for step: top-left back button, "OTP sent to: … Change", one box per digit with auto-advance / paste / auto-verify on the last digit (no Verify button),
OTP will expire in m:ssfrom the server'sexpireTime, red expiry notice with Resend / Sms · Whatsapp · VoiceCall buttons for the channels enabled on the dashboard, resend passes the dashboard timer as the new expiry, social logins as an icon row underOR, an in-card "Verified successfully" badge before closing, Terms & Privacy footer, andisOtpHide. AuthyoStylegaineddecorateInput,otpBox,backButton,sentToRow,statusText,verifiedBadge(styles decorate the digit boxes the same way as the single field);AuthyoVerifiedBadgewidget.PhoneVerificationDialoggainedverifiedDisplayDurationand a test-onlyserviceseam (AuthyoService.forTesting).- "Remember me" (dashboard option): the dialog shows the checkbox only when enabled; ticking it sends
rememberMeon verify (longer session token) and keeps the identity on device —AuthyoService.rememberedIdentity()/forgetIdentity();verifyOtp(rememberMe:). When the option is off nothing is shown, sent or stored. Usermodel gainsemail,identity,displayName,channel.
Changed #
- Dialog logic extracted into
VerificationController; rendering is delegated to anAuthyoStyleper design. sendOtpforAuthwayEnum.emailnow sends"Email"asauthway(previously the enum'stoString()).- Example app gained a design-style picker and a built-in-dialog toggle.
Dependencies #
shared_preferences,flutter_web_auth_2,url_launcher(Terms / Privacy links).
1.0.3 - 2025-08-18 #
Improved #
- Clear and helpful error message now shown when
AuthyoService.init()is called withoutclientIdorclientSecret. - The message includes a link to the Authyo dashboard, making it easier for developers to obtain their credentials quickly.
1.0.2 - 2025-08-18 #
- Code formatting and LICENSE modified.
1.0.1 - 2025-08-14 #
- Inline comments to clarify core logic in the
sendOtpandverifyOtpmethods. - Basic input validation messages for phone number and email.
- Scoped
ScaffoldMessenger.of(context)to variables beforeawaitcalls to follow best practices. - Renamed internal variable references for clarity and consistency.
1.0.0 - 2025-08-13 #
- Initial release of the
authyo_plugin. - Supports password-less authentication using:
- SMS
- Voice Call
- Provides
sendOtpandverifyOtpmethods for OTP-based verification. - Built-in customizable verification dialog.