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.
AuthGuardUserprotège les endpoints utilisateur.AuthGuardGameprotège les endpoints consommés par le jeu.AuthGuardAdminetAuthGuardAdminUserprotè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.
No comments to display
No comments to display