Now in public beta

Identity infrastructure
for multi-tenant products.

Per-environment signing keys, tenant-aware tokens, fresh-state authorization. A serious auth platform, priced for teams still shipping v1.

SOC 2-ready Audit log on every mutation
RSA per env Isolated signing keys, no cross-env forgery
Fresh state Role changes reflect in under 50ms
app.authyon.com/workspaces/acme/environments/production
Active users 12,486 +18.2%
Sign-ins / 24h 3,214 +4.6%
2FA enrolled 78% +2.1%
Recent sign-ins Live
AC
alice@acme.com Production · TOTP verified · 172.16.0.42
Success
MR
marcus@acme.com Production · Password + Email · 10.0.4.113
Success
SP
sara@acme.com Production · TOTP required · 200.140.12.9
Challenge

Trusted by teams that treat identity as infrastructure

◆ Vantage ▲ Northline ◐ Runway ✦ Braintrust ⬢ Hexlab ◇ Ridgeline ✧ Prism
A complete identity platform

Everything your product needs, in one place.

From the sign-in screen to the audit log — the whole identity surface, polished and ready to ship.

Sign-in experience

A polished front door for your product.

Branded flows, secure defaults, and every option users expect — social, email, magic link, TOTP.

Sign-in & sign-up Password, magic link, OAuth — with sensible defaults and full branding control.
Two-factor auth Authenticator app and email OTP, individually or together. Recovery codes included.
Account management Profile, sessions, connected devices and 2FA setup on a single screen users can trust.
Password recovery Rate-limited, audit-logged, and safe against enumeration attacks by default.
Teams & tenants

Real multi-tenant, without the plumbing.

Every workspace, every customer, every role — modeled the way B2B products actually work.

Tenant workspaces Isolated data, isolated members, isolated roles — one JWT carries the full tenant context.
Invite & onboard Email invites, temporary passwords, forced first-login rotation — all audited end-to-end.
Roles & permissions Fine-grained permissions, tenant-scoped roles, and inheritance from environment defaults.
Feature gating Ship features to a single tenant, a plan tier or a percentage — the same claim covers all of it.
Platform & security

Enterprise-grade controls, from day one.

Everything you'd otherwise build yourself — signing keys, environments, audit and observability.

Environments Development, staging and production — each with its own keys, audience and configuration.
Key rotation Rotate RSA keys with zero downtime, kept warm in JWKS for a configurable grace window.
Audit log Every login, invite, role change and key rotation captured with actor, IP and session context.
Webhooks & events Fan out domain events to your own systems — signed, retried, and idempotent by design.
Multi-tenant identity

Tenant-aware from the first request.

Flip multi-tenant on or off per environment. Roles resolve tenant → env → system in one pass. Every JWT ships with the entire tenant claim as one JSON object — no extra round trip.

  • Env-scoped tenants and members
  • Custom roles + permissions per tenant
  • Invite flow with temp password + forced rotation
Explore multi-tenant
Acme Corp Production · live
ACAlice ChenAdmin
MRMarcus ReyesDeveloper
SPSara ParkViewer
JTJulien TremblayBilling
12 members 4 roles 2FA required
Per-environment keys

DEV, staging and prod never share a signing key.

Every environment gets its own RSA pair, its own audience and its own JWKS endpoint. A leaked test key can never sign a production token. Rotation is per-env, non-blocking, and published to JWKS in seconds.

  • RS256, per-env, rotated on demand
  • Public JWKS endpoint, OIDC discovery
  • Old key kept alive for a configurable grace window
Explore signing keys
Developmentenv_dev_01H…
kid: dev-4b2c · alg: RS256 · rotated 3d ago
Stagingenv_stg_01H…
kid: stg-9f1e · alg: RS256 · rotated 12d ago
Productionenv_prd_01H…
kid: prd-c3a7 · alg: RS256 · rotated 2h ago
Fresh-state validation

Role changes reflect instantly. No JWT rotation.

The JWT proves identity. Authorization is served from an in-memory snapshot that invalidates on every user-mutating domain event. /auth/me and /auth/validate always return the truth — the JWT stays valid, the state stays fresh.

  • Sub-50ms snapshot lookup, database fallback
  • Fan-out invalidation on tenant / role events
  • Full audit log in the same transaction
Explore validation
Appcalls /auth/me
In-memorysnapshot · 24ms
Appgets fresh state
on domain event UserRoleChanged · TenantDisabled · MembershipRevoked → invalidate snapshot
Frameworks

Works with the stack you already use.

Next.jsApp Router · Middleware
.NETASP.NET Core 8/9
Node.jsExpress · Fastify
RemixLoader-based auth
NuxtServer middleware
DjangoDRF integration
RailsRack middleware
TraefikForward-auth
Nginxauth_request
EnvoyExtAuthZ
Developers

Three lines to protect an endpoint.

Publishable key on the client. Secret on the server. Same primitives across every SDK.

// Verify the JWT and hydrate the user from Redis
import { authyon } from "@authyon/node";

const auth = authyon({ env: process.env.AUTHYO_ENV_KEY });

app.get("/orders", auth.required(), async (req, res) => {
  // req.user is the fresh Redis snapshot
  const orders = await Orders.forTenant(req.user.tenant.id);
  res.json(orders);
});
// Program.cs — one call wires JWT + Redis + fresh-state validation
builder.Services.AddAuthyon(o =>
    o.EnvironmentKey = builder.Configuration["Authyon:EnvKey"]);

var app = builder.Build();
app.UseAuthyon();

app.MapGet("/orders", (AuthyonUser user, OrdersRepo repo) =>
    repo.ForTenant(user.Tenant.Id))
   .RequireAuthyon("orders:read");
# Any language, any framework — hit /auth/validate with the token
curl -X POST https://api.authyon.com/auth/validate \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Authyon-Env: env_01HGXK..."

# → 200 with fresh { user, tenant, scopes }
# → 401 the instant a role, permission or tenant flag changes
What builders say

Teams stop worrying about identity.

"We ripped out three different auth pieces and replaced them with Authyon in one sprint. The per-env keys alone would have cost us a security audit if we'd built it ourselves."

EM
Elena Márquez Head of Platform, Northline

"The snapshot-based authorization design is the thing. Role changes propagate instantly without rotating a single JWT. That was the sentence that sold our security team."

DK
Daniel Kwon Admin Engineer, Vantage

"Multi-tenant setups usually take us a quarter to design properly. With Authyon we had a tenant-aware JWT and a working invite flow the same afternoon we signed up."

RB
Renata Barros CTO, Ridgeline
Pricing

Simple pricing that scales with you.

Free while you're building. Predictable as you grow.

Starter
$0/ month

For side projects and early experiments.

  • 1 workspace
  • 2 environments
  • 1,000 monthly active users
  • Community support
Start free
Enterprise
Custom

Self-hosted or SLA-backed, with a real human on Slack.

  • Self-hosted option
  • SSO for admin, custom SLAs
  • Audit log export, custom retention
  • Dedicated Slack channel
Talk to sales
FAQ

Answers to the questions we actually get asked.

Do I need to rotate JWTs to reflect a role change?

No. The JWT proves identity — the actual authorization state is served from an in-memory snapshot on /auth/me and /auth/validate. Any user-mutating domain event invalidates the snapshot, so the next call returns the new state without touching the JWT.

What happens if my signing key leaks?

Keys are per-environment. A DEV leak cannot sign a PROD token. Rotation adds a new key beside the old one, publishes it in JWKS, and expires the old one on a configurable window — nothing drops mid-flight.

Can I self-host?

Yes, on the Enterprise plan. It's a .NET 9 API + Postgres + in-memory cache. Bring your own database, bring your own SMTP, we ship the container.

Is 2FA optional or opt-out?

Both. Every user can enable authenticator app, email OTP, or both. And environment owners can force it — the flag lives on the env, not the user, so it applies uniformly.

Bring identity online today.

Create your account in under a minute. Try the Starter plan while you evaluate — upgrade whenever you're ready.