From d9f06515a6b2a571d69960b002892190da88f01c Mon Sep 17 00:00:00 2001
From: "narindra.rajohnso" <narindra-hasimanjaka-david.rajohnson@etu.hesge.ch>
Date: Mon, 12 Jun 2023 14:23:39 +0200
Subject: [PATCH] add different name of token for every user

---
 .../src/app/homepage/homepage.component.ts    |  1 +
 .../src/app/login/session.service.ts          | 20 ++++++++++++-------
 .../app/login/sign-in/sign-in.component.ts    |  4 +++-
 3 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/Frontend/quizz-game/src/app/homepage/homepage.component.ts b/Frontend/quizz-game/src/app/homepage/homepage.component.ts
index 5a62cd3..4fa3d41 100644
--- a/Frontend/quizz-game/src/app/homepage/homepage.component.ts
+++ b/Frontend/quizz-game/src/app/homepage/homepage.component.ts
@@ -43,6 +43,7 @@ export class HomepageComponent implements OnInit, OnDestroy {
 
   }
   logOut(){
+    this.sessionService.deleteToken();
     this.router.navigate(['/', 'login']);
     //this.sessionService.deleteToken();
     this.quizzService.socket.emit("player-not-ready");
diff --git a/Frontend/quizz-game/src/app/login/session.service.ts b/Frontend/quizz-game/src/app/login/session.service.ts
index 102eceb..2ad77d8 100644
--- a/Frontend/quizz-game/src/app/login/session.service.ts
+++ b/Frontend/quizz-game/src/app/login/session.service.ts
@@ -1,4 +1,4 @@
-import { Injectable } from '@angular/core';
+import {Injectable} from '@angular/core';
 import {Subject} from "rxjs";
 import {Session} from "./session-model";
 
@@ -6,7 +6,7 @@ import {Session} from "./session-model";
   providedIn: 'root'
 })
 export class SessionService {
-  private static LS_SESSION_TOKEN: string = "sessionToken"
+  private static LS_SESSION_TOKEN_PREFIX: string = "sessionToken_"
 
   private _session!: Session;
 
@@ -22,17 +22,23 @@ export class SessionService {
   }
 
   get token(): string {
-    return localStorage.getItem(SessionService.LS_SESSION_TOKEN) ?? ""
+    const username = this.session?.username ?? "";
+    const storedToken = localStorage.getItem(`${SessionService.LS_SESSION_TOKEN_PREFIX}${username}`);
+    return storedToken ?? "";
   }
 
   set token(token: string) {
-    localStorage.setItem(SessionService.LS_SESSION_TOKEN, token)
+    const username = this.session?.username ?? "";
+    localStorage.setItem(`${SessionService.LS_SESSION_TOKEN_PREFIX}${username}`, token);
   }
 
-  deleteToken(){
-    localStorage.removeItem(SessionService.LS_SESSION_TOKEN)
+  deleteToken() {
+    const username = this.session?.username ?? "";
+    localStorage.removeItem(`${SessionService.LS_SESSION_TOKEN_PREFIX}${username}`);
   }
 
-  constructor() { }
+
+  constructor() {
+  }
 
 }
diff --git a/Frontend/quizz-game/src/app/login/sign-in/sign-in.component.ts b/Frontend/quizz-game/src/app/login/sign-in/sign-in.component.ts
index b8a5753..bb9377f 100644
--- a/Frontend/quizz-game/src/app/login/sign-in/sign-in.component.ts
+++ b/Frontend/quizz-game/src/app/login/sign-in/sign-in.component.ts
@@ -43,8 +43,9 @@ export class SignInComponent implements OnInit{
     this.httpClient.post<any>('http://localhost:30992/api/v1/guest/'+username, passwordPost).subscribe(
       response => {
         console.log("reponse sign in:", response);
-        this.sessionService.token=response.token;
         this.sessionService.session=new Session(username, response.firstname, response.lastname);
+        console.log("username:", this.sessionService.session.username);
+        this.sessionService.token=response.token;
         if(response.message === "USER_ALLOWED"){
           this.router.navigate(['/'+username+'/play']);
         }
@@ -55,6 +56,7 @@ export class SignInComponent implements OnInit{
       },
       error => {
         this.errorOccured=true;
+        console.log("erreur: ", error)
         if(error.error.message === "USER_PASSWORD_FALSE"){
           this.loginService.actualError=ErrorLogin.UserPassword;
         }
-- 
GitLab