From 460026bad4ddc15b6f9a2b9013fb04fbbfc8d5eb Mon Sep 17 00:00:00 2001
From: FORESTIER Fabien <fabien.forestier@soprasteria.com>
Date: Fri, 11 Oct 2019 14:17:29 +0200
Subject: [PATCH] Prevent user to think they are authenticated while their
 token is expired

---
 src/app/app.module.ts                 | 9 +++++----
 src/app/user/services/user.service.ts | 6 +++++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 9ee494f7..db66563e 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -46,16 +46,17 @@ export function initAppConfig(appConfigService: AppConfigService) {
     Angulartics2Module.forRoot(),
   ],
   providers: [
+    // The order is important as the InitUserService require the configuration of the app
     {
       provide: APP_INITIALIZER,
-      useFactory: initUserService,
-      deps: [UserService],
+      useFactory: initAppConfig,
+      deps: [AppConfigService],
       multi: true,
     },
     {
       provide: APP_INITIALIZER,
-      useFactory: initAppConfig,
-      deps: [AppConfigService],
+      useFactory: initUserService,
+      deps: [UserService],
       multi: true,
     },
   ],
diff --git a/src/app/user/services/user.service.ts b/src/app/user/services/user.service.ts
index 129942e3..93882aae 100644
--- a/src/app/user/services/user.service.ts
+++ b/src/app/user/services/user.service.ts
@@ -42,7 +42,11 @@ export class UserService {
   setUserInfo() {
     const userInfo = JSON.parse(localStorage.getItem('userInfo'));
     if (userInfo) {
-      this._user = new User(userInfo);
+      if (userInfo.exp > Date.now()) {
+        this._user = new User(userInfo);
+      } else {
+        this.resetAuth();
+      }
     }
   }
 
-- 
GitLab