Built on Cloudflare Workers — globally fast

Authentication
that just works
for every tenant.

Multi-tenant auth with social login, passkeys, TOTP 2FA, RBAC, SCIM provisioning, and a self-service customer portal — deploy once, scale everywhere.

Sign in
or
Passkey Ready
Features

Everything you need to ship auth

Stop building authentication from scratch. AuthNex provides every piece you need, secured by default.

Multi-Tenant by Default

Isolated user pools, roles, and API keys per tenant. Self-service signup with plan-based limits.

Social Login

Google, Microsoft, and GitHub OAuth built in. Tenants can bring their own credentials for branded consent screens.

Passkeys / WebAuthn

Passwordless authentication with platform authenticators. Register, authenticate, and manage multiple passkeys per user.

TOTP Two-Factor Auth

RFC 6238 compliant TOTP with backup codes. Uses async crypto.subtle for proper HMAC-SHA1.

SCIM 2.0 Provisioning

Enterprise IdP user sync via standard SCIM protocol. Auto-create, update, and deactivate users.

RBAC & Permissions

Flexible role-based access control with custom permissions. System roles plus tenant-scoped roles.

JWT & OIDC

RS256-signed JWTs, JWKS endpoint, and OpenID Connect discovery. Standard token refresh flows.

Custom Branding

Per-tenant logo, colors, and app name. SDK widget automatically fetches and applies your branding.

Audit Logs & Analytics

Full audit trail for every auth event. Analytics dashboards for login trends, anomalies, and security insights.

Integration

Integrate in minutes

Add authentication to any app with a few lines of code.

Drop-in JavaScript Widget

One script tag. Embeddable login form with social buttons, passkey support, and auto-branding — no backend changes needed.

PHP SDK

Composer package with token verification, user management, and middleware — works with Laravel, Symfony, and vanilla PHP.

// Drop-in widget — 2 lines <script src="https://auth.yourapp.com/widget.js"></script> <div id="authnex-login" data-tenant="my-company"></div> // Or use the PHP SDK use AuthNex\Client; $auth = new Client('your-api-key'); $user = $auth->verifyToken($_COOKIE['token']); if ($user->hasPermission('admin:read')) { // Authorized }
Pricing

Simple, transparent pricing

Start free. Scale when you're ready. No hidden fees.

Free
$0/mo
Perfect for side projects and prototypes
  • 50 users
  • 5,000 API calls/month
  • Social login
  • Email/password auth
  • Community support
Get Started
Pro
$99/mo
For scaling businesses with enterprise needs
  • 5,000 users
  • 500,000 API calls/month
  • SCIM 2.0 provisioning
  • OIDC / SSO
  • GDPR data export
  • Priority support
Start Free Trial

Ready to ship auth today?

Create your free account and start integrating in minutes.

Create Free Account