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