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
-
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.
1. Contexte & Root Cause Identifiée2/2
-
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
-
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
É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
- 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
- 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
- Build Web (
task build:web) : Validé ✅ - Typescript (
task typecheck) : Validé ✅ tu peux aussi deploy manu