0012 — 401/403 pour /admin : ni page dédiée ni API expérimentale
Statut : Acceptée
Contexte
L'ADR 0010 pose que rien dans ce site ne peut déclencher un 401 ou un 403, puisqu'il n'avait ni
authentification ni route API. L'ADR 0011 introduit /admin, protégé par NextAuth (provider
LinkedIn, restreint au seul profil du propriétaire du site) — la prémisse de l'ADR 0010 devient donc
fausse pour cette zone précise.
Décision
Pas de nouveau fichier de convention (app/401.tsx/app/403.tsx n'existent pas dans l'App Router)
et pas d'adoption des API expérimentales forbidden()/unauthorized() de Next.js 15.1+ : rien dans
le flux réel ne nécessite de branchement d'autorisation à l'intérieur du rendu d'une page.
- Non connecté sur
/admin/:path*→middleware.tsredirige vers/admin/login(une redirection, pas un rendu de page). - Mauvais compte LinkedIn → bloqué dans le callback
signInd'auth.tsavant toute création de session ; NextAuth redirige alors vers/admin/error, qui réutilise le shellErrorPage(composant déjà partagé parapp/not-found.tsx/app/error.tsx) pour rester dans le même vocabulaire visuel que le reste du site.
Conséquences
L'ADR 0010 reste valable pour le reste du site (le trio standard not-found/error/global-error
suffit toujours ailleurs) ; cette ADR n'en restreint la portée qu'à la zone /admin, sans y
introduire de nouvelle convention de fichier d'erreur.