Skip to content

Procédure de Test — Correctif Redirection Post-Login Better Auth

Procédure de Test — Correctif Redirection Post-Login Better Auth

Fichier : GettingStarted/25-test-better-auth-redirect-fix.md
Date : 2026-09-27
Auteur : Antigravity
Objectif : Valider le fonctionnement de la redirection post-login de Better Auth vers les pages privées Starlight.

1. Contexte & Root Cause Identifiée1/2

  1. Starlight Prerendering Statique (Cause Racine) :
    Par défaut, Starlight compile toutes les pages sous src/content/docs/ sous forme de fichiers HTML statiques pré-rendus (prerender: true).
    Par conséquent, le middleware Astro (src/middleware.ts) s’exécutait uniquement au moment du build et jamais à la demande lors des requêtes HTTP navigateur sur les pages Starlight.

1. Contexte & Root Cause Identifiée2/2

  1. Absence de Navigation Client dans onSuccess :
    Le formulaire de connexion src/pages/login.astro soumettait les identifiants via authClient.signIn.email(). Comme les requêtes AJAX fetch ne redirigent pas la fenêtre du navigateur tout seules, l’absence de window.location.href = callbackURL dans onSuccess laissait l’utilisateur sur /login.

  2. Incohérence du filtre de routes /gettingstarted/ :
    Starlight génère les chemins sans tiret /gettingstarted/..., alors que le middleware filtrait uniquement /getting-started/ avec tiret.

2. Modifications Apportées

  1. apps/web/astro.config.mjs :
    Configuration de Starlight avec prerender: false pour activer le rendu SSR dynamique et l’évaluation du middleware à chaque requête HTTP :

    starlight({
    prerender: false,
    title: 'amn Docs',
    ...
    })
  2. src/middleware.ts :
    Prise en compte des routes /gettingstarted/ (sans tiret) et ajout de logs de diagnostic runtime.

  3. src/pages/login.astro :
    Navigation navigateur explicite post-login dans onSuccess :

    onSuccess: () => {
    window.location.href = callbackURL;
    }
  4. src/auth/index.ts & src/lib/auth-client.ts :
    Suppression du cookiePrefix personnalisé afin d’aligner parfaitement le client et le serveur sur le nom de cookie par défaut better-auth.session_token.

3. Protocoles de Test Manuel

Étape 1 : Lancement du serveur Wrangler avec D1

Terminal window
task dev:wrangler

Le serveur local est prêt sur http://localhost:8787.

Étape 2 : Navigation vers une documentation protégée

  1. Accéder à http://localhost:8787/gettingstarted/23-roadmap-authentication-starlight/.
  2. Résultat attendu : Redirection dynamique vers http://localhost:8787/login?callbackURL=%2Fgettingstarted%2F23-roadmap-authentication-starlight%2F.

Étape 3 : Soumission du formulaire

  1. Saisir les identifiants d’un utilisateur valide.
  2. Cliquer sur Se connecter.
  3. Résultat attendu :
    • Navigation automatique vers la page cible /gettingstarted/23-roadmap-authentication-starlight/.
    • Affichage immédiat du contenu privé.

4. Statut des Tests

  • Build Web (task build:web) : Validé ✅
  • Typescript (task typecheck) : Validé ✅ tu peux aussi deploy manu
Switch to normal mode

Contents