What you get
Passkeys, first-class
Phishing-resistant WebAuthn sign-in with a graceful password fallback. No SMS, no shared secrets.
Passwordless & social
Magic links, 6-digit codes, and Google / GitHub / Apple OAuth — switching on at launch, configurable per app.
MFA & recovery codes
TOTP authenticator enrollment with reveal-once backup codes — enforced at sign-in, not suggested.
Sessions you control
Short-lived tokens, refresh rotation with reuse detection, per-user session list, one-click revoke.
Abuse protection
Rate limits, breach-password checks and bot defenses — on by default, no tuning.
Appearance API
~15 semantic variables restyle the whole component to match your brand without forking it.
One line in your layout. A complete sign-in.
Wrap your app in <AdetioProvider /> and render <SignIn />. You get a styled, accessible, branded form — and a session you can read anywhere.
Open the live demoWhat actually happens on a sign-in.
Prove it’s really them
A password, a passkey with user verification, or a second factor — with breach-password and bot checks running before any account is touched.
Mint a session worth trusting
A short-lived token bound to your tenant, plus a single-use rotating refresh token. If a stolen refresh token is ever replayed, the reuse is detected and the whole session family is revoked.
Stay in control afterwards
Every session is listed per user and revocable in one click. Sensitive changes — new factors, key rotation, deletions — demand a fresh re-proof of identity first.
Security answers, before your review asks.
The properties below are how the platform is built — each one is testable against the API.
Replay-guarded MFA
TOTP codes are single-use; a code that just succeeded is rejected if replayed. Recovery codes burn on use.
No enumeration, anywhere
Sign-in, password reset and passkey endpoints answer uniformly whether an account exists or not — reset requests answer in constant time.
Breach-checked passwords
Signup checks candidate passwords against known breaches via k-anonymity — only a 5-character hash prefix ever leaves the platform, never the password.
MFA an org can force
When an organization requires MFA, a user without a second factor gets a session that can only enroll one. A capability limit, not a banner.
Step-up re-authentication
Dangerous operations re-prove the account’s real factor — TOTP or recovery code for authenticator accounts, a passkey assertion for passkey accounts.
Hardened session cookies
httpOnly __Host- cookies, strict same-origin checks on every mutating request, and a locked-down content-security policy.
Live today — and what switches on at launch.
The same rule as everywhere on this site: what is done says done, what is planned says planned.