Authentification et guards Vue d’ensemble L’authentification combine JWT côté backend et des guards côté backend et frontend. Backend JWT configuré globalement dans src/app.module.ts. Secret provenant de JwtConstants.secretJwt. Durée de validité configurée à 4 heures. AuthGuardUser protège les endpoints utilisateur. AuthGuardGame protège les endpoints consommés par le jeu. AuthGuardAdmin et AuthGuardAdminUser protègent les fonctions administratives. Frontend Les guards Angular sont dans uniksimFrontEnd/src/app/service/auth/. Les routes sont protégées directement dans app.module.ts. AuthInterceptorService est enregistré comme HTTP_INTERCEPTORS afin d’appliquer la logique d’authentification aux appels HTTP. Connexion LoginController expose notamment signIn, signUp et le login spécial Chenelière. La logique métier correspondante se trouve dans src/service/login.service.ts. Socket.IO et notifications du jeu socketAuthMiddleware est installé sur /account et /support. Il vérifie le JWT avant tout handler puis stocke le payload dans client.data.user. Le token peut venir de handshake.auth.token, de la query ou de Authorization. Angular envoie auth: { token } via le transport commun RealtimeSocket. Les rooms support sont soumises à l’appartenance à la conversation; typing exige d’avoir rejoint la room et checkOnline limite les non-admins à leurs admins assignés. Les sockets de présence appartiennent au namespace compte. POST /saveNotification utilise AuthGuardUser. GameNotificationService vérifie le profil actif destinataire et les membres de la simulation BrainCloud; les types réservés au serveur sont refusés. Les routes d’inbox et d’installations FCM dérivent le compte de request.user.sub.