From e7a3d2c23fb685491b867819271018011d838259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Fri, 13 Mar 2020 17:48:15 +0100 Subject: [PATCH] Ajout d'une date d'expiration sur l'objet du localStorage --- .../src/services/authentication.service.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Front/skydivelogs-app/src/services/authentication.service.ts b/Front/skydivelogs-app/src/services/authentication.service.ts index 7199329..03e59c0 100644 --- a/Front/skydivelogs-app/src/services/authentication.service.ts +++ b/Front/skydivelogs-app/src/services/authentication.service.ts @@ -6,6 +6,7 @@ import { map } from 'rxjs/operators'; import { User } from '../models/user'; import { BaseService } from './base.service'; +import { DateService } from './date.service'; @Injectable({ @@ -15,7 +16,7 @@ export class AuthenticationService extends BaseService { private currentUserSubject: BehaviorSubject; public currentUser: Observable; - constructor(private http: HttpClient) { + constructor(private http: HttpClient, private dateService: DateService) { super(); this.currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser'))); @@ -23,6 +24,14 @@ export class AuthenticationService extends BaseService { } public get currentUserValue(): User { + const tmp = localStorage.getItem('currentUser'); + if (tmp) { + const storedUser = JSON.parse(tmp); + if (new Date().getTime() > storedUser.expired) { + localStorage.removeItem('currentUser'); + } + } + return this.currentUserSubject.value; } @@ -38,6 +47,8 @@ export class AuthenticationService extends BaseService { .pipe(map(user => { // store user details and basic auth credentials in local storage to keep user logged in between page refreshes user.authdata = window.btoa(username + ':' + password); + user.expired = this.dateService.AddDays(new Date(), 1).getTime(); + localStorage.setItem('currentUser', JSON.stringify(user)); this.currentUserSubject.next(user); return user;