DevAuthKit v1.9.0 Released • Enterprise SSO (SAML 2.0) & SCIM 2.0 Ready

The Auth Engine You
Actually Own.

A plug-and-play, zero-fee authentication engine for Node.js, Express, and Cloudflare Workers. Enterprise SAML 2.0 SSO, SCIM 2.0 directory sync, hardware-bound RFC 9449 DPoP tokens, WebAuthn passkeys, and multi-tenant B2B workspaces with zero cloud fees.

$0
Zero MAU Limits • MIT Free
< 3m
Zero-Config Production Setup
RFC 9449
Hardware-Bound Token Security
100%
TypeScript & Edge Runtimes

Test The Security Engines In Real Time

DevAuthKit brings zero-trust token protection to your applications. Test the cryptographic handshakes right in your browser.

Server Console Output
Ready. Click "1. Dispatch OTP Code" to simulate zero-config dev mode email dispatch.

Generates an ECDSA P-256 keypair in your browser's window.crypto.subtle memory, computes the RFC 7638 SHA-256 thumbprint (cnf.jkt), and binds your access token directly to this device.

Token Theft Shield: Stolen tokens cannot be replayed without your device's private key.
Cryptographic Proof Inspector
Click "Generate P-256 Key" to compute an RFC 7638 thumbprint in browser memory...

DevAuthKit integrates native WebAuthn support via @simplewebauthn/server and durable Cloudflare D1 storage for Touch ID, Face ID, and Windows Hello.

WebAuthn Credential Inspector
Click "Detect Platform Authenticator" to inspect hardware biometric support...

Built For Modern Engineering Teams

Everything required for production authentication, with zero proprietary lock-in.

01 / REVOLUTIONARY SECURITY

RFC 9449 DPoP Token Theft Defense

Standard Bearer tokens can be extracted via infostealer malware, malicious browser extensions, or proxy logs. DevAuthKit binds tokens to client ECDSA P-256 public keys via cnf.jkt thumbprints, instantly neutralizing token theft and replay attacks.

// Sensitive API Route
app.post("/api/transfer", devAuthKit.requireDPoP, (req, res) => {
  res.json({ authorized: true, boundKey: req.dpop.jkt });
});
02 / BIOMETRICS

WebAuthn Passkeys

Provide instant 1-touch passwordless login with Touch ID, Face ID, Windows Hello, and YubiKeys. Native `@simplewebauthn` integration with durable Cloudflare D1 storage.

devAuthKit(app, {
  passkeys: { rpID: "myapp.com" }
});
03 / MULTI-RUNTIME

Node & Cloudflare Edge

Run on traditional Express.js servers or deploy globally to Cloudflare Workers, Hono, and Bun with native Web Crypto APIs.

import { createHonoAuth } from "devauthkit/hono";
04 / SESSION SECURITY

Rotating Refresh Tokens & Replay Defense

Short-lived 15-minute access tokens paired with rotating 30-day httpOnly cookies. Includes automatic token family tracking, immediate reuse detection, and multi-device session revocation endpoints (/auth/sessions/revoke-all).

refreshTokens: { accessTokenExpiresIn: "15m", refreshTokenExpiresInDays: 30 }
05 / DATA SOVEREIGNTY

Database Freedom

First-class adapters for Prisma, Drizzle ORM, Mongoose (MongoDB), and Cloudflare D1. Zero vendor database locks.

userAdapter: prismaAdapter(prisma)
06 / ENTERPRISE FEDERATION

Enterprise SSO (SAML 2.0) & SCIM 2.0 Sync

Zero-fee, self-hosted alternative to WorkOS ($125/conn/mo) and Auth0 Enterprise ($800+/mo). Pure-JS C14N XML canonicalization, dynamic SP metadata XML, universal domain routing with DNS TXT verification, and RFC 7644 SCIM automated provisioning with instant session deprovisioning cascade.

const sso = await devauth.resolveSso({ email: "jane@acme.com" });
if (sso.isEnterprise) devauth.loginWithSso(sso.connection.id);

Backend Simplicity Meets Frontend Reactivity

Mount your authentication backend with one function call, then consume it cleanly in React with hooks.

const express = require("express");
const devAuthKit = require("devauthkit");

const app = express();

// Initialize DevAuthKit (Zero-config dev mode prints OTP to console)
devAuthKit(app, {
  jwtSecret: process.env.JWT_SECRET || "your-secret-key",
  sessionSecret: process.env.SESSION_SECRET || "your-session-key",
  corsOrigin: ["http://localhost:3000", "http://localhost:5173"],
  devMode: true
});

// Protect routes with triple-strategy requireAuth middleware
app.get("/api/dashboard", devAuthKit.requireAuth, (req, res) => {
  res.json({ message: "Authenticated", user: req.user });
});

app.listen(3000, () => console.log("DevAuthKit server ready on http://localhost:3000"));

Why Developers Switch To DevAuthKit

Compare DevAuthKit against proprietary SaaS vendors and legacy packages.

Capability DevAuthKit Clerk / Auth0 NextAuth / Auth.js Passport.js
Pricing Model 100% Free / Self-Hosted MAU Tiers ($$$) Free Free
Setup Overhead < 3 minutes 5 minutes 30+ minutes 2+ hours
RFC 9449 DPoP ✓ Built-in — — —
Biometric Passkeys ✓ Native WebAuthn ✓ Cloud Hosted Manual Config —
Cloudflare Edge ✓ D1 & KV Native — Partial —
Database Adapters Prisma, Drizzle, Mongo Vendor Locked Prisma, Drizzle Manual Glue
Zero-Config Dev Mode ✓ Terminal OTP — — —

Ready To Own Your Auth?

No monthly active user limits. No proprietary lock-in. Free and open source under the MIT license.

npm install devauthkit
Read Complete Documentation →