Rechercher

Rechercher dans Kavel...

Menu de documentation

Authentification

Authentification e-mail/mot de passe et OAuth avec sessions, propulsée par Better Auth.

Ce que vous obtenez

  • Inscription et connexion par e-mail + mot de passe avec des sessions sécurisées basées sur les cookies
  • Routes prêtes à l'emploi : /sign-in, /sign-up, /forgot-password et /reset-password
  • Google et GitHub OAuth en option, activés en ajoutant des identifiants, désactivés en leur absence
  • Tables Drizzle pour les utilisateurs, sessions et comptes, plus le middleware requireAuth pour protéger les procédures oRPC

Comment ça marche

Better Auth est configuré dans apps/api/src/lib/auth.ts et monté sur /api/auth/*. L'application web communique avec lui via un client typé. Protégez n'importe quelle procédure en composant le middleware d'authentification :

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

Fournisseurs OAuth

Définissez GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET ou les variables GITHUB_* équivalentes dans .dev.vars pour activer un fournisseur. Laissez-les vides pour le désactiver, ou retirez le fournisseur dans src/lib/auth.ts.

Astuce

Avec le module e-mail installé, les e-mails de vérification et de réinitialisation de mot de passe sont branchés automatiquement. Sans lui, ces flux fonctionnent toujours via le jeton ; ils n'envoient simplement pas d'e-mail.

Installation

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