Better Auth

Configurazione di Better Auth per app TypeScript: email/password, OAuth, 2FA, passkey, adattatori DB

di mrgoonie · mrgoonie/claudekit-skills

Richiede configurazione ★ 7.6/10

Better Auth — Configurazione di Better Auth per app TypeScript: email/password, OAuth, 2FA, passkey, adattatori DB

Cosa fa

Guida all'implementazione di Better Auth, la libreria di autenticazione TypeScript agnostica dal framework, che copre email/password con verifica e reset, provider OAuth social, 2FA/TOTP, passkey, link magici, sessioni e adattatori di database per Drizzle, Prisma, Kysely e MongoDB. Si attiva quando si aggiunge autenticazione o autorizzazione a un'app TypeScript o JavaScript, si collega il login OAuth, si configura l'autenticazione a più fattori o si configura lo schema del database di autenticazione e le rotte protette. Fornisce quattro documenti di riferimento più uno script di inizializzazione Python che configura la configurazione di autenticazione e i valori .env.

Rapporto di test

INSTALL: il frontmatter è parsabile (name + description + license + version 2.0.0); tutti e 5 i file referenziati nel corpo sono stati recuperati con HTTP 200 (references/email-password-auth.md 8567B, oauth-providers.md 9293B, database-integration.md 10517B, advanced-features.md 10604B, scripts/better_auth_init.py 16394B). Ho cercato nello script Python di 521 righe: nessun curl|sh, nessun base64, nessuna chiamata di rete, nessun testo di iniezione; solo risoluzione relativa di Path(__file__) e `secrets` per la generazione di chiavi. TRIGGER 5/5 — DOVREBBE attivarsi: "Add Better Auth email/password + GitHub OAuth to my Next.js 15 app" (sì), "I want passwordless passkey/WebAuthn sign-in for our SvelteKit TypeScript app" (sì), "Set up TOTP two-factor auth and role-based access control for our Node/TS SaaS" (sì); NON DOVREBBE: "Our nginx reverse proxy needs HTTP basic auth on /admin" (no — infra, non auth app), "Configure OAuth2 client credentials to call the Stripe API from our Python backend" (no — auth macchina in uscita, lingua sbagliata). OUTPUT: il task era "add Better Auth to Next.js App Router with email/password + verification, GitHub OAuth, Postgres/Drizzle, protected /dashboard". Ho scritto la baseline a memoria senza aprire alcun documento di riferimento (avvertenza: avevo già letto il corpo di SKILL.md, quindi la contaminazione è limitata al quickstart di alto livello, non ai riferimenti, che contengono il vero carico utile della skill). L'esecuzione della skill ha superato la baseline su quattro punti concreti: firma corretta di sendVerificationEmail({user,url,token}) più sendOnSignUp/autoSignInAfterVerification (la baseline ha indovinato), middleware tramite auth.api.getSession({headers}) con matcher invece della mia rilevazione manuale del nome del cookie, account.accountLinking.trustedProviders che la baseline ha completamente ignorato, e il flag CLI --adapter drizzle. Ma ho poi verificato i riferimenti rispetto al pacchetto reale (npm pack better-auth@1.6.23 e @better-auth/drizzle-adapter, ho cercato nella dist): `emailAndPassword.sendResetPasswordToken` non esiste (solo `sendResetPassword`), `password.requireUppercase` non esiste (l'opzione reale è `minPasswordLength` a livello superiore), e la mappa di stringhe `schema: { user: "users" }` di drizzle ha la forma sbagliata — quel campo accetta oggetti tabella drizzle, la denominazione plurale è `usePlural: true`. Quei tre non avrebbero avuto effetto in silenzio, quindi le email di reset password e la policy password non si sarebbero mai attivate. DOCS: SKILL.md è onesto sulla struttura e non esagera; detratto un punto perché i documenti di riferimento documentano opzioni assenti dalla libreria distribuita e la skill riporta un'etichetta "version 2.0.0" senza indicazione di quale versione di better-auth tracci.

Testato il: 2026-07-21 · Claude Code 2.x (agent harness)

Installazione

git clone --depth 1 https://github.com/mrgoonie/claudekit-skills /tmp/claudekit-skills
mkdir -p ~/.claude/skills
cp -R /tmp/claudekit-skills/.claude/skills/better-auth ~/.claude/skills/better-auth
# project-local instead: cp -R /tmp/claudekit-skills/.claude/skills/better-auth .claude/skills/
# optional interactive scaffolder (needs python3):
# python3 ~/.claude/skills/better-auth/scripts/better_auth_init.py

Comandi e prompt di esempio

  • /better-authConfigurazione di Better Auth per app TypeScript: email/password, OAuth, 2FA, passkey, adattatori DB

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Add Google OAuth login with Better Auth
  • Set up two-factor authentication for this app
  • Configure role-based access control with Better Auth