Open source · MIT · self-hosted

One auth server for all of your apps.

Deploy au1h once. Every product you build gets login, sessions, OAuth and JWTs, and the same email is a separate user in each one. Your backend verifies a token or trusts the gateway.

bun add @au1h/client @au1h/server
  • Per-app isolationSame email, different user, password and session in every app.
  • Zero auth code in your backendVerify an EdDSA JWT against a public JWKS, or sit behind the gateway.
  • Built on Better AuthEmail + password, OAuth, magic links, OTP, organizations. Postgres and Redis.
Verify a user on your backend — Hono
import { createVerifier } from "@au1h/server";
import { requireAu1hUser } from "@au1h/server/hono";
 
const au1h = createVerifier({ au1hUrl: AU1H_URL, appSlug: "todo" });
 
app.use("/api/*", requireAu1hUser(au1h));
app.get("/api/me", (c) => c.json(c.get("au1hUser")));