107. Check for logged in user (#12)
This commit is contained in:
8
support-portal-frontend/package-lock.json
generated
8
support-portal-frontend/package-lock.json
generated
@ -371,6 +371,14 @@
|
|||||||
"integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==",
|
"integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@auth0/angular-jwt": {
|
||||||
|
"version": "5.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@auth0/angular-jwt/-/angular-jwt-5.0.2.tgz",
|
||||||
|
"integrity": "sha512-rSamC9mu+gUxoR86AXcIo+KD7xRIro+/iu1F2Ld85YAZEVKlpB5vYG+g0yGaEOqjtQWP/i0H6fi6XMGPVHSYYQ==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@babel/code-frame": {
|
"@babel/code-frame": {
|
||||||
"version": "7.14.5",
|
"version": "7.14.5",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
|
||||||
|
|||||||
@ -18,6 +18,7 @@
|
|||||||
"@angular/platform-browser": "~12.2.0",
|
"@angular/platform-browser": "~12.2.0",
|
||||||
"@angular/platform-browser-dynamic": "~12.2.0",
|
"@angular/platform-browser-dynamic": "~12.2.0",
|
||||||
"@angular/router": "~12.2.0",
|
"@angular/router": "~12.2.0",
|
||||||
|
"@auth0/angular-jwt": "^5.0.2",
|
||||||
"rxjs": "~6.6.0",
|
"rxjs": "~6.6.0",
|
||||||
"tslib": "^2.3.0",
|
"tslib": "^2.3.0",
|
||||||
"zone.js": "~0.11.4"
|
"zone.js": "~0.11.4"
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import {HttpClient, HttpErrorResponse, HttpResponse} from "@angular/common/http"
|
|||||||
import {UserLogin} from "../dto/user-login";
|
import {UserLogin} from "../dto/user-login";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {User} from "../model/user";
|
import {User} from "../model/user";
|
||||||
|
import {JwtHelperService} from "@auth0/angular-jwt";
|
||||||
|
|
||||||
const USER_STORAGE_KEY = "user";
|
const USER_STORAGE_KEY = "user";
|
||||||
const JWT_TOKEN_STORAGE_KEY = "jwt-token";
|
const JWT_TOKEN_STORAGE_KEY = "jwt-token";
|
||||||
@ -18,6 +19,9 @@ export class AuthenticationService {
|
|||||||
private loggedInUser: string | null;
|
private loggedInUser: string | null;
|
||||||
private storage = localStorage;
|
private storage = localStorage;
|
||||||
|
|
||||||
|
//first install this module: `npm install @auth0/angular-jwt`
|
||||||
|
private jwtHelper: JwtHelperService = new JwtHelperService();
|
||||||
|
|
||||||
constructor(private httpClient: HttpClient) {
|
constructor(private httpClient: HttpClient) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -61,4 +65,19 @@ export class AuthenticationService {
|
|||||||
return this.token;
|
return this.token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public isLoggedIn(): boolean {
|
||||||
|
this.loadToken();
|
||||||
|
if (this.token != null && this.token !== '') {
|
||||||
|
let subject = this.jwtHelper.decodeToken(this.token).sub;
|
||||||
|
if (subject != null || '') {
|
||||||
|
if (!this.jwtHelper.isTokenExpired(this.token!)) {
|
||||||
|
this.loggedInUser = subject;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.logout()
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user