NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Add secure, multi-channel MFA (SMS, WhatsApp, Email, Call) to your Flutter app with Authyo. Fast, simple, and flexible.
Last release 19 days ago
19 Sep 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 7 of 7 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
7 releases · first in 2025
One column per month.
OTP screen now has everything the web widget shows: the draining expiry bar (OTP expires in m:ss, blue → amber → red), the N of M attempts remaining p
OTP expires in m:ss, blue → amber → red), the N of M attempts remaining pill, the resend cooldown bar with a Resend OTP button that unlocks when it ends, and the inline Invalid OTP. Please try again. line under the boxes.onVerificationComplete gets the failure with AuthyoResult.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.progressBar, attemptsPill, errorText, verifiedIdentityIcon; statusText takes color / weight; sentToRow takes verified.AuthyoTheme.socialButtonsFullWidth, drawn with each style's socialButton slot).AuthyoTheme.socialButtonShape / AuthyoStyle.socialButtonRadius; every design style honours it. Apps configured before the setting existed keep following the action button shape.<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. hideBranding still removes the footer line.VerificationController.resend takes a nullable channel (null = repeat the current channel).Sign in with Apple appears in the dialog when configured on the dashboard (AuthyoSocialProvider.apple); the backend's Apple callback now returns to th
AuthyoSocialProvider.apple); the backend's Apple callback now returns to the app via authyo://oauth/callback like the other providers.Colors.transparent rendered a grey band on Impeller (Android/iOS); they now fade to the same colour at alpha 0 (Neumorphism inset, Claymorphism highlight, Skeuomorphism gloss/well).Shown only when the application enables it (appCustomization.isRememberMe). Ticking it sends rememberMe on verify (server issues a token valid for rem
Shown only when the application enables it (appCustomization.isRememberMe).
Ticking it sends rememberMe on verify (server issues a token valid for
rememberMeDays) and keeps the identity on device for prefill via
AuthyoService.rememberedIdentity() / forgetIdentity(). When the option is
off: no checkbox, flag never sent, nothing stored, and a value kept by an
earlier configuration is removed. AuthyoStyle.checkbox slot; example app
prefills the remembered identity; tests for off / unticked / ticked.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
AuthyoDesignStyle).AuthyoTheme — colours, texts, logo, button shape, layout and resend timer, mirroring the dashboard customization; mergeable so dashboard values and local overrides layer cleanly.AuthyoService.loadConfig()), caches them on device and refreshes in the background. The OTP flow never blocks on it.AuthyoService.socialLogin(), using the system browser and the authyo://oauth/callback scheme. onSocialLogin lets host apps plug in native SDKs.init() options: designStyle, theme, onSocialLogin, prefetchConfig; sendOtp() options: designStyle, theme.requestOtp() (send without UI), showVerificationDialog(), setDesignStyle(), setTheme(), setShowVerificationDialog().OTP will expire in m:ss from the server's expireTime, 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 under OR, an in-card "Verified successfully" badge before closing, Terms & Privacy footer, and isOtpHide.AuthyoStyle gained decorateInput, otpBox, backButton, sentToRow, statusText, verifiedBadge (styles decorate the digit boxes the same way as the single field); AuthyoVerifiedBadge widget.PhoneVerificationDialog gained verifiedDisplayDuration and a test-only service seam (AuthyoService.forTesting).rememberMe on 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.User model gains email, identity, displayName, channel.VerificationController; rendering is delegated to an AuthyoStyle per design.sendOtp for AuthwayEnum.email now sends "Email" as authway (previously the enum's toString()).shared_preferences, flutter_web_auth_2, url_launcher (Terms / Privacy links).Clear and helpful error message now shown when AuthyoService.init() is called without clientId or clientSecret.
AuthyoService.init() is called without clientId or clientSecret.Code formatting and LICENSE modified.
Inline comments to clarify core logic in the sendOtp and verifyOtp methods.
sendOtp and verifyOtp methods.ScaffoldMessenger.of(context) to variables before await calls to follow best practices.Initial release of the authyo_plugin.
authyo_plugin.sendOtp and verifyOtp methods for OTP-based verification.Your coding agent can read these notes before it upgrades. Set up the MCP server →