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ée
Section titled “1. Contexte & Root Cause Identifiée”-
Starlight Prerendering Statique (Cause Racine) :
Par défaut, Starlight compile toutes les pages soussrc/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. -
Absence de Navigation Client dans
onSuccess:
Le formulaire de connexionsrc/pages/login.astrosoumettait les identifiants viaauthClient.signIn.email(). Comme les requêtes AJAXfetchne redirigent pas la fenêtre du navigateur tout seules, l’absence dewindow.location.href = callbackURLdansonSuccesslaissait l’utilisateur sur/login. -
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
Section titled “2. Modifications Apportées”-
apps/web/astro.config.mjs:
Configuration de Starlight avecprerender: falsepour activer le rendu SSR dynamique et l’évaluation du middleware à chaque requête HTTP :starlight({prerender: false,title: 'amn Docs',...}) -
src/middleware.ts:
Prise en compte des routes/gettingstarted/(sans tiret) et ajout de logs de diagnostic runtime. -
src/pages/login.astro:
Navigation navigateur explicite post-login dansonSuccess:onSuccess: () => {window.location.href = callbackURL;} -
src/auth/index.ts&src/lib/auth-client.ts:
Suppression ducookiePrefixpersonnalisé afin d’aligner parfaitement le client et le serveur sur le nom de cookie par défautbetter-auth.session_token.
3. Protocoles de Test Manuel
Section titled “3. Protocoles de Test Manuel”Étape 1 : Lancement du serveur Wrangler avec D1
Section titled “Étape 1 : Lancement du serveur Wrangler avec D1”task dev:wranglerLe serveur local est prêt sur http://localhost:8787.
Étape 2 : Navigation vers une documentation protégée
Section titled “Étape 2 : Navigation vers une documentation protégée”- Accéder à
http://localhost:8787/gettingstarted/23-roadmap-authentication-starlight/. - Résultat attendu : Redirection dynamique vers
http://localhost:8787/login?callbackURL=%2Fgettingstarted%2F23-roadmap-authentication-starlight%2F.
Étape 3 : Soumission du formulaire
Section titled “Étape 3 : Soumission du formulaire”- Saisir les identifiants d’un utilisateur valide.
- Cliquer sur Se connecter.
- Résultat attendu :
- Navigation automatique vers la page cible
/gettingstarted/23-roadmap-authentication-starlight/. - Affichage immédiat du contenu privé.
- Navigation automatique vers la page cible
4. Statut des Tests
Section titled “4. Statut des Tests”- Build Web (
task build:web) : Validé ✅ - Typescript (
task typecheck) : Validé ✅ tu peux aussi deploy manu