From c23ef5d5857496502d0fd393e4d490d4c99e27dc Mon Sep 17 00:00:00 2001 From: Evan Langlais Date: Mon, 29 Apr 2019 22:42:48 -0400 Subject: [PATCH] Fixing resetting of token, changing endpoint, simplifying isLoggedIn function --- .../authentication.component.ts | 2 +- src/app/header/header.component.ts | 12 ++--------- src/app/services/login.service.ts | 20 ++++++++++++++----- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/app/authentication/authentication.component.ts b/src/app/authentication/authentication.component.ts index e602c8e..4a03fe6 100644 --- a/src/app/authentication/authentication.component.ts +++ b/src/app/authentication/authentication.component.ts @@ -54,7 +54,7 @@ export class AuthenticationComponent implements OnInit { localStorage.removeItem('gen_name'); localStorage.removeItem('data_type'); localStorage.removeItem('fault_type'); - localStorage.removeItem('auth_token'); + // localStorage.removeItem('auth_token'); } } diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts index 20b222c..0cac245 100644 --- a/src/app/header/header.component.ts +++ b/src/app/header/header.component.ts @@ -23,16 +23,8 @@ export class HeaderComponent implements OnInit { resetGenAndVisualize() { this.resetAndRedirect('/visualize-all'); } - isLoggedIn() - { - if(localStorage.getItem('auth_token')) - { - return true; - } - else - { - return false; - } + isLoggedIn(): boolean { + return (localStorage.getItem('auth_token') !== null); } resetAndRedirect(url: string) { diff --git a/src/app/services/login.service.ts b/src/app/services/login.service.ts index 6448efd..013ad92 100644 --- a/src/app/services/login.service.ts +++ b/src/app/services/login.service.ts @@ -3,13 +3,14 @@ import { HttpClient } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/throw'; import 'rxjs/add/operator/catch'; +import {Router} from '@angular/router'; @Injectable({ providedIn: 'root' }) export class LoginService { - constructor(private http: HttpClient) { } + constructor(private http: HttpClient, private router: Router) { } authorizeUser(loginInfo): Observable { return this.http.post('http://sd5-backend.engr.uconn.edu/auth', loginInfo); @@ -33,19 +34,28 @@ export class LoginService { getToken(): Promise { return new Promise((resolve, reject) => { const token = localStorage.getItem('auth_token'); - if (!token) { reject('No Token'); } - this.http.get('http://sd5-backend.engr.uconn.edu/auth/verify', { + if (!token) { this.resetToken(); reject('No Token'); } + this.http.get('http://sd5-backend.engr.uconn.edu/verify', { headers: { Authorization: 'Bearer ' + token }, observe: 'response' }).subscribe((response) => { - if (response.status === 200) { + if (response.ok) { resolve(token); } else { - reject('Invalid Token'); + this.resetToken(); + reject('Bad Token!'); } + }, () => { + this.resetToken(); + reject('Bad Token!'); }); }); } + + resetToken() { + localStorage.removeItem('auth_token'); + this.router.navigateByUrl('#'); + } }