Email + password
The boring path, done right: modern memory-hard password hashing with a per-deployment pepper, and progressive lockout that slows repeated failures without locking out the real user.
WebAuthn as a first-class primary credential — device-bound, phishing-resistant, and the smoothest way in your users will meet. Not a 2FA afterthought.
› Read the docsTOTP from any authenticator app, plus single-use backup codes for the day a phone goes missing. Enrollment, step-up, and recovery — all in the box.
› Read the docsGoogle and GitHub out of the box, plus generic OIDC for enterprise single sign-on. Per-app client credentials, kept encrypted at rest.
› Read the docsPasswordless email sign-in with single-use, expiring links — network-bound and redirect-allow-listed, so a leaked link is a dead link.
› Read the docsShort-lived signed access tokens with refresh-token rotation. A replayed token kills the whole family. Revoke any live session from the dashboard.
› Read the docsAn append-only audit log with a stable vocabulary, and signed, replay-protected webhooks so your systems hear about every sign-in, lockout, and admin action.
› Read the docsHowever your users choose to arrive, they land in the same session model, the same audit trail, and the same revocation controls. Pick the methods you want — none of them are gated.
The boring path, done right: modern memory-hard password hashing with a per-deployment pepper, and progressive lockout that slows repeated failures without locking out the real user.
A primary credential, not a bolt-on second factor. Device-bound and phishing-resistant, with sign-counter regression caught as a cloned-authenticator signal.
Time-based one-time codes from any authenticator app, plus single-use backup codes for recovery. Enrollment and step-up verification are first-class, not a premium tier.
Single-use, expiring email links, bound to the requesting network and checked against a per-app redirect allow-list. Convenient without handing phishers a free move.
The two providers most of your users already have, wired in with per-app client credentials kept encrypted at rest. The redirect is caught for you via the URL fragment.
Bring any compliant OpenID Connect provider for per-org SSO — verified tokens, an allowed-domain gate, and the same session model as every other method.
An access token is short-lived and signed; a refresh token rotates on every use. If an old refresh token is ever replayed, TillAuth treats the whole family as compromised and revokes it — a stolen token buys minutes, not months.
Every live session is visible and revocable from the dashboard, with its device, IP, and issue time. And because TillShield can reach into TillAuth, a security rule can revoke_sessions for a user the instant something looks wrong.
Wrap your app, call useSignIn, done. The provider auto-refreshes tokens before they expire and catches OAuth redirects via the URL fragment. Cookie-mode is a single config flag away.
TillAuth isn’t a standalone login box — it’s the identity layer of the TillDev workspace you already have, so the rest of the family can act on who’s signed in.
When a TillShield rule fires revoke_sessions or quarantine, it is ending a TillAuth session — the same session your users authenticate against. Security and identity share one source of truth.
Every sign-in, lockout, MFA change, and impersonation writes to the shared TillDev audit log, next to your Pulse and Shield events — one history, not three.
One login, one bill, one set of members and roles. Add TillAuth to a workspace that already runs TillPulse and it inherits the org, the team, and the billing you already have.
We don't paywall MFA. We don't ask "is this for production?" to unlock 100 users. Auth isn't an enterprise upsell — it's a defaultable primitive.
Authentication is the one thing you can’t bolt on cleanly later. Start with it right — passkeys, MFA, and SSO on day one, on every plan.
You don't have to use the rest. But they fit together — same workspace, same audit log, same shortcut to switch between them. Add what you need when you need it.