fix(auth): écritures profil qui pendent + middleware auth inopérant - #19
Conversation
Deux bugs qui cassaient tout le parcours profil : 1. getAuthSession utilisait toWebRequest(event), qui touche au flux du corps de la requête : le readBody(event) des handlers PUT/POST attendait ensuite un corps déjà verrouillé → toutes les écritures /api/profile* pendaient indéfiniment en build de prod (les GET, sans corps, passaient). On passe event.headers directement à auth.api.getSession, comme le fait déjà le middleware serveur. 2. Le middleware de navigation `auth` testait la truthiness de l'atom nanostores de useAuth() — toujours vrai → aucune redirection, et les visiteurs non connectés voyaient « Impossible de charger ton profil » (401) sur /profil. On vérifie désormais la session via GET /api/auth/get-session (cookies transférés en SSR). Vérifié sur build de prod + Postgres : PUT/POST/DELETE profil en ~10 ms, /profil anonyme → 302 /connexion, /profil connecté → 200. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe PR refactors authentication session handling by updating the server-side session utility to retrieve sessions using direct event headers instead of web request conversion, and modifies the middleware to call the session endpoint directly with proper cookie forwarding for SSR instead of relying on the ChangesAuthentication Session Handling
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
✅ Deploy Preview for monumental-speculoos-a69398 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Symptômes (constatés par le fondateur et reproduits)
/profilaffichait « Impossible de charger ton profil » pour un visiteur non connecté (au lieu de rediriger vers/connexion).PUT /api/profile,POST experiences/skills, import) pendaient indéfiniment en build de prod — l'édition de profil était inutilisable.Causes
getAuthSession→toWebRequest(event): convertir l'événement H3 enRequesttouche au flux du corps ; lereadBody(event)qui suit dans les handlers PUT/POST attend un corps déjà verrouillé → hang. Les GET (sans corps) passaient, d'où le symptôme asymétrique. Fix : passerevent.headersdirectement (comme le middleware serveur le fait déjà).auth: il testait la truthiness de l'atom nanostores deuseAuth()— un objet, toujours vrai → aucune redirection, jamais. Fix : vérification réelle de session viaGET /api/auth/get-session(cookies transférés en SSR).Vérification (build de prod + Postgres réel)
PUT /api/profile→ 200 en ~20 ms (avant : timeout 12 s) ;POSTexpériences/compétences → 200 ; relecture GET OK./profilsans cookie → 302/connexion; avec session → 200.🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes