Files
better-auth/docs
Bereket Engida bbeccec036 fix(one-tap): bind ID tokens to a server-issued single-use nonce
The One Tap client forwarded a caller-supplied nonce to Google, but the
callback never passed it to verifyGoogleIdToken, so the nonce claim was
never checked and a captured ID token could be replayed until it expired.

Add POST /one-tap/nonce, which stores a random single-use nonce in the
verification table. The client now fetches it before initializing Google
and sends it back with the ID token. The callback consumes the nonce
before verification, passes it to verifyGoogleIdToken, and rejects a
token that carries a nonce claim when none is presented.

Closes #10926
2026-09-03 22:27:30 -07:00
..
2026-04-29 20:04:16 +00:00

Better Auth

Website & Docs

The main website and documentation for better-auth.com

Website GitHub Stars License


Quick Start

# install
pnpm install

# develop
pnpm dev

Open localhost:3000 to preview.

Stack

  • Framework: Next.js 16 (App Router, Turbopack)
  • Styling: Tailwind CSS 4
  • Animation: Framer Motion
  • Docs: Fumadocs
  • Icons: Lucide React
  • Fonts: Geist Sans & Geist Mono

Structure

├─ app/
│  ├─ page.tsx              # Home — hero + sign-in demo
│  ├─ products/             # Products page
│  ├─ blog/                 # Blog posts
│  └─ docs/[[...slug]]/     # Documentation (MDX)
│
├─ components/
│  ├─ landing/              # Marketing components
│  ├─ docs/                 # Documentation components
│  ├─ ui/                   # Shared primitives
│  └─ icons/                # Brand icons & logo
│
├─ content/                 # MDX documentation files
│
├─ lib/
│  ├─ source.ts             # Fumadocs content source
│  └─ utils.ts              # Utilities
│
└─ public/
   └─ branding/             # Logo assets (SVG + PNG)

Scripts

pnpm dev          # Start dev server (Turbopack)
pnpm build        # Production build
pnpm start        # Serve production build
pnpm lint:fix     # Lint & auto-fix with Biome