From 4890a29ba39c2608032bf9d93204f2d31e26d4a2 Mon Sep 17 00:00:00 2001 From: neckfire Date: Sat, 15 Aug 2026 16:25:26 +0200 Subject: [PATCH] =?UTF-8?q?Page=20admin=20:=20lit=20le=20vrai=20jeton=20au?= =?UTF-8?q?=20lieu=20d'une=20cha=C3=AEne=20vide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Admin.tsx gardait le TODO d'origine : const token = '' // token should be passed / read from auth in real app Tous les appels authentifiés partaient donc en `?token=` et retombaient en 401 : « Impossible de charger les utilisateurs / les statistiques / les logs de scrapers ». Seul l'onglet documents fonctionnait, parce qu'il tape sur /documents qui est public. Le jeton est lu dans localStorage, là où App.tsx le pose au login. Corrige du même coup les actions de la page (suppression d'utilisateur, changement de rôle, suppression de document) qui utilisent la même constante. Co-Authored-By: Claude Opus 5 (1M context) --- src/pages/Admin.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/Admin.tsx b/src/pages/Admin.tsx index eb9db1c..49c2b52 100644 --- a/src/pages/Admin.tsx +++ b/src/pages/Admin.tsx @@ -28,7 +28,8 @@ export default function Admin() { const [sortKey, setSortKey] = useState(null) const [sortDir, setSortDir] = useState<'asc'|'desc'>('asc') - const token = '' // token should be passed / read from auth in real app + // Jeton posé par App.tsx au login (handleAuthSuccess). + const token = localStorage.getItem('authToken') ?? '' useEffect(() => { const fetchTab = async () => {