# Frontend — Risques & vigilance : Auth > Extrait de la base de connaissance Lead_tech. Voir `knowledge/frontend/risques/README.md` pour l'index complet. --- ## Auth côté client (mauvaise séparation des responsabilités) ### Risques - Le front "décide" des permissions au lieu d'appliquer un contrat backend - Affichage d'actions interdites / fuite d'informations dans l'UI - Tokens stockés de façon dangereuse (XSS) ### Symptômes - Différences entre "ce que l'UI permet" et "ce que l'API accepte" - Bugs "ça marche chez moi" selon sessions/rôles - Incohérences sur refresh / multi-tab ### Bonnes pratiques / mitigations - Le backend reste source de vérité (authz) - Cacher l'UI ≠ sécuriser : toujours sécuriser côté API - Stockage tokens : privilégier cookies httpOnly si modèle adapté - Gérer proprement expiration/refresh + révocation ### Contexte technique - Observé : (à compléter) - Stack : (à préciser) --- ## Loading infini sur écran gated par droits distants ### Risques - Un écran protégé reste bloqué dans un faux `loading` après une erreur de chargement des entitlements - Un effet relance automatiquement la récupération en boucle sans action utilisateur - L'utilisateur ne voit ni état d'erreur ni issue de sortie claire ### Symptômes - Spinner infini sur un écran soumis à permissions distantes - `entitlements` ou autorisations laissés à `null` après erreur - `useEffect` ou logique d'entrée qui retrigger le fetch à chaque rendu ### Bonnes pratiques / mitigations - Distinguer explicitement `loading`, `error`, `ready` - Ne pas réutiliser `null` comme état ambigu "pas encore chargé" et "chargement en erreur" - Bloquer les retries automatiques en boucle après erreur - Réautoriser un retry seulement via action utilisateur explicite ou nouvelle condition d'entrée - Contexte technique : React Native / Expo / store d'entitlements — 10-03-2026 --- ## Bouton OAuth présent mais handler vide après refacto UI ### Risques - L'OAuth est silencieusement cassé sur le nouvel écran — zéro erreur au démarrage, zéro crash - L'AC "toutes les fonctionnalités préservées" peut être coché alors que le bouton est mort ### Symptômes - `