Suche

Kavel durchsuchen...

Dokumentationsmenü

Authentifizierung

E-Mail/Passwort- und OAuth-Authentifizierung mit Sitzungen, angetrieben von Better Auth.

Was du bekommst

  • Registrierung und Anmeldung per E-Mail + Passwort mit sicheren, cookie-basierten Sitzungen
  • Fertige Routen: /sign-in, /sign-up, /forgot-password und /reset-password
  • Optionales Google- und GitHub-OAuth, durch Hinzufügen von Zugangsdaten aktiviert, ohne sie deaktiviert
  • Drizzle-Tabellen für Benutzer, Sitzungen und Konten, plus requireAuth-Middleware zum Schützen von oRPC-Prozeduren

Wie es funktioniert

Better Auth wird in apps/api/src/lib/auth.ts konfiguriert und unter /api/auth/* eingehängt. Die Web-App spricht über einen typisierten Client damit. Schütze jede Prozedur, indem du die Auth-Middleware kombinierst:

ts
export const getProfile = protectedProcedure
  .handler(async ({ context }) => {
    // context.user is guaranteed to exist here
    return context.user;
  });

OAuth-Anbieter

Setze GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET oder die entsprechenden GITHUB_*-Variablen in .dev.vars, um einen Anbieter zu aktivieren. Lass sie leer, um ihn aus zu lassen, oder entferne den Anbieter in src/lib/auth.ts.

Tipp

Mit installiertem E-Mail-Modul werden Bestätigungs- und Passwort-Reset-E-Mails automatisch verdrahtet. Ohne es funktionieren diese Abläufe weiterhin über den Token; sie versenden nur keine Mail.

Einrichtung

bash
# generate a session secret
openssl rand -base64 32   # -> BETTER_AUTH_SECRET

# create the auth tables
cd apps/api && bun db:generate && bun db:migrate