107. Check for logged in user (#12)

This commit is contained in:
Art
2021-09-12 12:54:58 +03:00
parent e00bf6b789
commit bbdf15daec
3 changed files with 28 additions and 0 deletions

View File

@ -371,6 +371,14 @@
"integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==",
"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": {
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",

View File

@ -18,6 +18,7 @@
"@angular/platform-browser": "~12.2.0",
"@angular/platform-browser-dynamic": "~12.2.0",
"@angular/router": "~12.2.0",
"@auth0/angular-jwt": "^5.0.2",
"rxjs": "~6.6.0",
"tslib": "^2.3.0",
"zone.js": "~0.11.4"

View File

@ -4,6 +4,7 @@ import {HttpClient, HttpErrorResponse, HttpResponse} from "@angular/common/http"
import {UserLogin} from "../dto/user-login";
import {Observable} from "rxjs";
import {User} from "../model/user";
import {JwtHelperService} from "@auth0/angular-jwt";
const USER_STORAGE_KEY = "user";
const JWT_TOKEN_STORAGE_KEY = "jwt-token";
@ -18,6 +19,9 @@ export class AuthenticationService {
private loggedInUser: string | null;
private storage = localStorage;
//first install this module: `npm install @auth0/angular-jwt`
private jwtHelper: JwtHelperService = new JwtHelperService();
constructor(private httpClient: HttpClient) {
}
@ -61,4 +65,19 @@ export class AuthenticationService {
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;
}
}