@trudb/tru-common-lib 0.0.701 → 0.0.703
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/login/classes/tru-auth-config.mjs +1 -1
- package/esm2020/lib/components/login/classes/tru-auth-jwt-strategy.mjs +1 -14
- package/esm2020/lib/components/login/classes/tru-auth-user-request.mjs +3 -0
- package/esm2020/lib/components/login/services/tru-auth.mjs +16 -16
- package/fesm2015/trudb-tru-common-lib.mjs +17 -26
- package/fesm2015/trudb-tru-common-lib.mjs.map +1 -1
- package/fesm2020/trudb-tru-common-lib.mjs +17 -26
- package/fesm2020/trudb-tru-common-lib.mjs.map +1 -1
- package/lib/components/login/classes/tru-auth-config.d.ts +0 -3
- package/lib/components/login/classes/tru-auth-jwt-strategy.d.ts +0 -5
- package/lib/components/login/classes/tru-auth-user-request.d.ts +3 -0
- package/lib/components/login/services/tru-auth.d.ts +2 -5
- package/package.json +1 -1
|
@@ -5,4 +5,4 @@ export const TRU_AUTH_CONFIG = {
|
|
|
5
5
|
auth: "token",
|
|
6
6
|
};
|
|
7
7
|
export const TRU_AUTH_STRATEGY = new InjectionToken("AuthStrategy");
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWF1dGgtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL2NsYXNzZXMvdHJ1LWF1dGgtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFVL0MsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFrQjtJQUM1QyxPQUFPLEVBQUUseUJBQXlCO0lBQ2xDLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLElBQUksRUFBRSxPQUFPO0NBQ2QsQ0FBQztBQVVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxjQUFjLENBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFRydVVzZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdHJ1LXVzZXJcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJ1QXV0aENvbmZpZyB7XHJcbiAgYmFzZVVybDogc3RyaW5nO1xyXG4gIGF1dGhVcmw6IHN0cmluZztcclxuICBhdXRoOiBcInNlc3Npb25cIiB8IFwidG9rZW5cIjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFRSVV9BVVRIX0NPTkZJRzogVHJ1QXV0aENvbmZpZyA9IHtcclxuICBiYXNlVXJsOiBcImh0dHBzOi8vbG9jYWxob3N0OjQ0MzAzXCIsXHJcbiAgYXV0aFVybDogXCIvYXBpL2F1dGhcIixcclxuICBhdXRoOiBcInRva2VuXCIsXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRydUF1dGhTdHJhdGVneTxUPiB7XHJcbiAgZG9Mb2dpblVzZXIoZGF0YTogVCk6IHZvaWQ7XHJcblxyXG4gIGRvTG9nb3V0VXNlcigpOiB2b2lkO1xyXG5cclxuICBpc0xvZ2dlZEluKCk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBUUlVfQVVUSF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUcnVBdXRoU3RyYXRlZ3k8YW55Pj4oXHJcbiAgXCJBdXRoU3RyYXRlZ3lcIlxyXG4pO1xyXG4iXX0=
|
|
@@ -1,28 +1,15 @@
|
|
|
1
|
-
import { of } from "rxjs";
|
|
2
|
-
import { JwtHelperService } from "@auth0/angular-jwt";
|
|
3
|
-
const helper = new JwtHelperService();
|
|
4
1
|
export class TruAuthJwtStrategy {
|
|
5
2
|
constructor() {
|
|
6
3
|
this.JWT_ACCESS_TOKEN = "ACCESS_TOKEN";
|
|
7
4
|
this.JWT_REFRESH_TOKEN = "REFRESH_TOKEN";
|
|
8
|
-
this.USER_CLAIMS = "USER_CLAIMS";
|
|
9
5
|
}
|
|
10
6
|
doLoginUser(token) {
|
|
11
7
|
localStorage.setItem(this.JWT_ACCESS_TOKEN, JSON.stringify(token.accessToken));
|
|
12
8
|
localStorage.setItem(this.JWT_REFRESH_TOKEN, JSON.stringify(token.refreshToken));
|
|
13
|
-
localStorage.setItem(this.USER_CLAIMS, JSON.stringify(token.userClaims));
|
|
14
9
|
}
|
|
15
10
|
doLogoutUser() {
|
|
16
11
|
localStorage.removeItem(this.JWT_ACCESS_TOKEN);
|
|
17
12
|
}
|
|
18
|
-
getCurrentUser() {
|
|
19
|
-
let token = helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN));
|
|
20
|
-
return of(JSON.parse(helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN))));
|
|
21
|
-
}
|
|
22
|
-
getUserRoles() {
|
|
23
|
-
let token = helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN));
|
|
24
|
-
return of(token);
|
|
25
|
-
}
|
|
26
13
|
isLoggedIn() {
|
|
27
14
|
return !!this.getJwtToken();
|
|
28
15
|
}
|
|
@@ -46,4 +33,4 @@ export class TruAuthJwtStrategy {
|
|
|
46
33
|
return token;
|
|
47
34
|
}
|
|
48
35
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWF1dGgtand0LXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL2NsYXNzZXMvdHJ1LWF1dGgtand0LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxrQkFBa0I7SUFBL0I7UUFDbUIscUJBQWdCLEdBQUcsY0FBYyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFHLGVBQWUsQ0FBQztJQXVDdkQsQ0FBQztJQXJDQyxXQUFXLENBQUMsS0FBbUI7UUFDN0IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxZQUFZO1FBQ1YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFXLENBQUMsQ0FBQztRQUU5RSxJQUFJLEtBQUssSUFBSSxLQUFLLEtBQUssV0FBVyxFQUFFO1lBQ2xDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUUvQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25CLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRTNDLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRTtnQkFDZixZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1QXV0aFRva2VuIH0gZnJvbSBcIi4vdHJ1LWF1dGgtdG9rZW5cIjtcclxuaW1wb3J0IHsgVHJ1VXNlciB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy90cnUtdXNlclwiO1xyXG5pbXBvcnQgeyBUcnVBdXRoU3RyYXRlZ3kgfSBmcm9tIFwiLi90cnUtYXV0aC1jb25maWdcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBUcnVBdXRoSnd0U3RyYXRlZ3kgaW1wbGVtZW50cyBUcnVBdXRoU3RyYXRlZ3k8VHJ1QXV0aFRva2VuPiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBKV1RfQUNDRVNTX1RPS0VOID0gXCJBQ0NFU1NfVE9LRU5cIjtcclxuICBwcml2YXRlIHJlYWRvbmx5IEpXVF9SRUZSRVNIX1RPS0VOID0gXCJSRUZSRVNIX1RPS0VOXCI7XHJcblxyXG4gIGRvTG9naW5Vc2VyKHRva2VuOiBUcnVBdXRoVG9rZW4pOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSldUX0FDQ0VTU19UT0tFTiwgSlNPTi5zdHJpbmdpZnkodG9rZW4uYWNjZXNzVG9rZW4pKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSldUX1JFRlJFU0hfVE9LRU4sIEpTT04uc3RyaW5naWZ5KHRva2VuLnJlZnJlc2hUb2tlbikpO1xyXG4gIH1cclxuXHJcbiAgZG9Mb2dvdXRVc2VyKCk6IHZvaWQge1xyXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5KV1RfQUNDRVNTX1RPS0VOKTtcclxuICB9XHJcblxyXG4gIGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmdldEp3dFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICBnZXRKd3RUb2tlbigpIHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuSldUX0FDQ0VTU19UT0tFTikgYXMgc3RyaW5nKTtcclxuICB9XHJcblxyXG4gIGdldFRva2VuKCkge1xyXG4gICAgdmFyIHRva2VuID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkpXVF9BQ0NFU1NfVE9LRU4pIGFzIHN0cmluZyk7XHJcblxyXG4gICAgaWYgKHRva2VuICYmIHRva2VuICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGNvbnN0IGVuY29kZWRQYXlsb2FkID0gdG9rZW4uc3BsaXQoXCIuXCIpWzFdO1xyXG4gICAgICBjb25zdCBwYXlsb2FkU3RyID0gd2luZG93LmF0b2IoZW5jb2RlZFBheWxvYWQpO1xyXG5cclxuICAgICAgdmFyIHBheWxvYWQgPSBKU09OLnBhcnNlKHBheWxvYWRTdHIpO1xyXG4gICAgICB2YXIgZXhwID0gcGF5bG9hZFtcImV4cFwiXTtcclxuICAgICAgdmFyIGQgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB2YXIgZXBvY2ggPSBNYXRoLnJvdW5kKGQuZ2V0VGltZSgpIC8gMTAwMCk7XHJcblxyXG4gICAgICBpZiAoZXhwIDwgZXBvY2gpIHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLkpXVF9BQ0NFU1NfVE9LRU4pO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiB0b2tlbjtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class TruAuthUserRequest {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWF1dGgtdXNlci1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1LWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2xvZ2luL2NsYXNzZXMvdHJ1LWF1dGgtdXNlci1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxrQkFBa0I7Q0FFOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHJ1QXV0aFVzZXJSZXF1ZXN0IHtcclxuICAgIHVzZXJuYW1lITogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import { Injectable, Inject } from "@angular/core";
|
|
2
|
-
import { of } from "rxjs";
|
|
3
2
|
import { BehaviorSubject } from "rxjs";
|
|
4
3
|
import { TRU_AUTH_STRATEGY } from "../classes/tru-auth-config";
|
|
5
4
|
import { TRU_AUTH_CONFIG } from "../classes/tru-auth-config";
|
|
6
|
-
import { tap,
|
|
5
|
+
import { tap, switchMap } from "rxjs/operators";
|
|
6
|
+
import { TruAuthUserRequest } from "../classes/tru-auth-user-request";
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/router";
|
|
9
9
|
import * as i2 from "@angular/common/http";
|
|
10
10
|
import * as i3 from "./tru-auth-cache";
|
|
11
11
|
import * as i4 from "../../../services/tru-user";
|
|
12
12
|
import * as i5 from "../../../services/tru-app-environment";
|
|
13
|
-
import * as i6 from "@auth0/angular-jwt";
|
|
14
13
|
export class TruAuth {
|
|
15
|
-
constructor(router, http, cache, user, appEnvironment,
|
|
14
|
+
constructor(router, http, cache, user, appEnvironment, auth) {
|
|
16
15
|
this.router = router;
|
|
17
16
|
this.http = http;
|
|
18
17
|
this.cache = cache;
|
|
19
18
|
this.user = user;
|
|
20
19
|
this.appEnvironment = appEnvironment;
|
|
21
|
-
this.jwtHelperService = jwtHelperService;
|
|
22
20
|
this.auth = auth;
|
|
23
21
|
this.loggedIn = new BehaviorSubject(false);
|
|
24
22
|
this.baseUrl = '';
|
|
23
|
+
this.createUserRequest = (username) => {
|
|
24
|
+
let truUser = new TruAuthUserRequest();
|
|
25
|
+
truUser.username = username;
|
|
26
|
+
return truUser;
|
|
27
|
+
};
|
|
25
28
|
this.baseUrl = this.appEnvironment.appUri;
|
|
26
29
|
}
|
|
27
30
|
login(loginRequest) {
|
|
28
31
|
return this.http
|
|
29
32
|
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/login`, loginRequest)
|
|
30
|
-
.pipe(tap((data
|
|
33
|
+
.pipe(tap(switchMap(data => this.http
|
|
34
|
+
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/user`, this.createUserRequest(loginRequest.username))
|
|
35
|
+
.pipe(tap((user) => {
|
|
31
36
|
this.auth.doLoginUser(data);
|
|
37
|
+
this.user.create(user);
|
|
32
38
|
this.loggedIn.next(true);
|
|
33
|
-
}));
|
|
39
|
+
})))));
|
|
34
40
|
}
|
|
35
41
|
logout() {
|
|
36
42
|
this.doLogoutUser();
|
|
37
43
|
}
|
|
38
|
-
isLoggedIn$() {
|
|
39
|
-
return this.auth.getCurrentUser().pipe(map(() => true), catchError(() => of(false)));
|
|
40
|
-
}
|
|
41
44
|
get isLoggedIn() {
|
|
42
45
|
if (!this.loggedIn.value) {
|
|
43
46
|
this.loggedIn.next(this.auth.isLoggedIn());
|
|
44
47
|
}
|
|
45
48
|
return this.loggedIn.asObservable();
|
|
46
49
|
}
|
|
47
|
-
getCurrentUser$() {
|
|
48
|
-
return this.auth.getCurrentUser();
|
|
49
|
-
}
|
|
50
50
|
doLogoutAndRedirectToLogin() {
|
|
51
51
|
this.doLogoutUser();
|
|
52
52
|
this.loggedIn.next(false);
|
|
@@ -58,15 +58,15 @@ export class TruAuth {
|
|
|
58
58
|
this.auth.doLogoutUser();
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
-
TruAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, deps: [{ token: i1.Router }, { token: i2.HttpClient }, { token: i3.TruAuthCache }, { token: i4.TruUser }, { token: i5.TruAppEnvironment }, { token:
|
|
61
|
+
TruAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, deps: [{ token: i1.Router }, { token: i2.HttpClient }, { token: i3.TruAuthCache }, { token: i4.TruUser }, { token: i5.TruAppEnvironment }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
62
62
|
TruAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, providedIn: "root" });
|
|
63
63
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, decorators: [{
|
|
64
64
|
type: Injectable,
|
|
65
65
|
args: [{
|
|
66
66
|
providedIn: "root",
|
|
67
67
|
}]
|
|
68
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.TruAuthCache }, { type: i4.TruUser }, { type: i5.TruAppEnvironment }, { type:
|
|
68
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.TruAuthCache }, { type: i4.TruUser }, { type: i5.TruAppEnvironment }, { type: undefined, decorators: [{
|
|
69
69
|
type: Inject,
|
|
70
70
|
args: [TRU_AUTH_STRATEGY]
|
|
71
71
|
}] }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vc2VydmljZXMvdHJ1LWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBbUIsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFLdEUsTUFBTSxPQUFPLE9BQU87SUFJbEIsWUFDVSxNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsS0FBbUIsRUFDbkIsSUFBYSxFQUNiLGNBQWlDLEVBQ04sSUFBMEI7UUFMckQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFUdkQsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFhckIsc0JBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFzQixFQUFFO1lBQ2pFLElBQUksT0FBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUM1QixPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUE7UUFQQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFRRCxLQUFLLENBQUMsWUFBaUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sUUFBUSxFQUFFLFlBQVksQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJO2FBQ2xDLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDMUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQWdCLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDNUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7O29HQXREVSxPQUFPLHNKQVVSLGlCQUFpQjt3R0FWaEIsT0FBTyxjQUZOLE1BQU07MkZBRVAsT0FBTztrQkFIbkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVdJLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVHJ1QXV0aExvZ2luUmVxdWVzdCB9IGZyb20gXCIuLi9jbGFzc2VzL3RydS1hdXRoLWxvZ2luLXJlcXVlc3RcIjtcclxuaW1wb3J0IHsgVHJ1QXV0aENhY2hlIH0gZnJvbSBcIi4vdHJ1LWF1dGgtY2FjaGVcIjtcclxuaW1wb3J0IHsgVFJVX0FVVEhfU1RSQVRFR1kgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtYXV0aC1jb25maWdcIjtcclxuaW1wb3J0IHsgVHJ1QXV0aFN0cmF0ZWd5IH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LWF1dGgtY29uZmlnXCI7XHJcbmltcG9ydCB7IFRSVV9BVVRIX0NPTkZJRyB9IGZyb20gXCIuLi9jbGFzc2VzL3RydS1hdXRoLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyB0YXAsIG1hcCwgY2F0Y2hFcnJvciwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IElUcnVVc2VyLCBUcnVVc2VyIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RydS11c2VyXCI7XHJcbmltcG9ydCB7IFRydUFwcEVudmlyb25tZW50IH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL3RydS1hcHAtZW52aXJvbm1lbnRcIjtcclxuaW1wb3J0IHsgVHJ1QXV0aFVzZXJSZXF1ZXN0IH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LWF1dGgtdXNlci1yZXF1ZXN0XCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVBdXRoIHtcclxuICBwcml2YXRlIGxvZ2dlZEluID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjYWNoZTogVHJ1QXV0aENhY2hlLFxyXG4gICAgcHJpdmF0ZSB1c2VyOiBUcnVVc2VyLFxyXG4gICAgcHJpdmF0ZSBhcHBFbnZpcm9ubWVudDogVHJ1QXBwRW52aXJvbm1lbnQsXHJcbiAgICBASW5qZWN0KFRSVV9BVVRIX1NUUkFURUdZKSBwcml2YXRlIGF1dGg6IFRydUF1dGhTdHJhdGVneTxhbnk+XHJcbiAgKSB7XHJcbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLmFwcEVudmlyb25tZW50LmFwcFVyaTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlVXNlclJlcXVlc3QgPSAodXNlcm5hbWU6IHN0cmluZyk6IFRydUF1dGhVc2VyUmVxdWVzdCA9PiB7XHJcbiAgICAgIGxldCB0cnVVc2VyID0gbmV3IFRydUF1dGhVc2VyUmVxdWVzdCgpO1xyXG4gICAgICB0cnVVc2VyLnVzZXJuYW1lID0gdXNlcm5hbWU7XHJcbiAgICAgIHJldHVybiB0cnVVc2VyOyBcclxuICB9XHJcblxyXG4gIGxvZ2luKGxvZ2luUmVxdWVzdDogVHJ1QXV0aExvZ2luUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmJhc2VVcmx9JHtUUlVfQVVUSF9DT05GSUcuYXV0aFVybH0vbG9naW5gLCBsb2dpblJlcXVlc3QpXHJcbiAgICAgICAgLnBpcGUodGFwKHN3aXRjaE1hcChkYXRhID0+IHRoaXMuaHR0cFxyXG4gICAgICAgICAgLnBvc3Q8YW55PihgJHt0aGlzLmJhc2VVcmx9JHtUUlVfQVVUSF9DT05GSUcuYXV0aFVybH0vdXNlcmAsIHRoaXMuY3JlYXRlVXNlclJlcXVlc3QobG9naW5SZXF1ZXN0LnVzZXJuYW1lKSlcclxuICAgICAgICAgIC5waXBlKHRhcCgodXNlcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmF1dGguZG9Mb2dpblVzZXIoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMudXNlci5jcmVhdGUodXNlciBhcyBJVHJ1VXNlcik7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VkSW4ubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0pKSkpKTsgXHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmRvTG9nb3V0VXNlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XHJcbiAgICBpZiAoIXRoaXMubG9nZ2VkSW4udmFsdWUpIHtcclxuICAgICAgdGhpcy5sb2dnZWRJbi5uZXh0KHRoaXMuYXV0aC5pc0xvZ2dlZEluKCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubG9nZ2VkSW4uYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBkb0xvZ291dEFuZFJlZGlyZWN0VG9Mb2dpbigpIHtcclxuICAgIHRoaXMuZG9Mb2dvdXRVc2VyKCk7XHJcbiAgICB0aGlzLmxvZ2dlZEluLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiXCJdKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZG9Mb2dvdXRVc2VyKCkge1xyXG4gICAgdGhpcy51c2VyLmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY2FjaGUucHJ1bmVBbGwoKTtcclxuICAgIHRoaXMuYXV0aC5kb0xvZ291dFVzZXIoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -71,11 +71,9 @@ import { __awaiter } from 'tslib';
|
|
|
71
71
|
import moment$1 from 'moment';
|
|
72
72
|
import * as i8 from 'ag-grid-angular';
|
|
73
73
|
import { AgGridModule } from 'ag-grid-angular';
|
|
74
|
-
import { tap,
|
|
74
|
+
import { tap, switchMap, catchError } from 'rxjs/operators';
|
|
75
75
|
import * as i1$6 from '@angular/router';
|
|
76
76
|
import { RouterModule } from '@angular/router';
|
|
77
|
-
import * as i6$1 from '@auth0/angular-jwt';
|
|
78
|
-
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
79
77
|
import * as i1$7 from '@angular/platform-browser';
|
|
80
78
|
import { BrowserModule } from '@angular/platform-browser';
|
|
81
79
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
@@ -3694,6 +3692,9 @@ const TRU_AUTH_CONFIG = {
|
|
|
3694
3692
|
};
|
|
3695
3693
|
const TRU_AUTH_STRATEGY = new InjectionToken("AuthStrategy");
|
|
3696
3694
|
|
|
3695
|
+
class TruAuthUserRequest {
|
|
3696
|
+
}
|
|
3697
|
+
|
|
3697
3698
|
class TruAuthCache {
|
|
3698
3699
|
constructor() {
|
|
3699
3700
|
this.prunables = [];
|
|
@@ -3715,41 +3716,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
3715
3716
|
}] });
|
|
3716
3717
|
|
|
3717
3718
|
class TruAuth {
|
|
3718
|
-
constructor(router, http, cache, user, appEnvironment,
|
|
3719
|
+
constructor(router, http, cache, user, appEnvironment, auth) {
|
|
3719
3720
|
this.router = router;
|
|
3720
3721
|
this.http = http;
|
|
3721
3722
|
this.cache = cache;
|
|
3722
3723
|
this.user = user;
|
|
3723
3724
|
this.appEnvironment = appEnvironment;
|
|
3724
|
-
this.jwtHelperService = jwtHelperService;
|
|
3725
3725
|
this.auth = auth;
|
|
3726
3726
|
this.loggedIn = new BehaviorSubject(false);
|
|
3727
3727
|
this.baseUrl = '';
|
|
3728
|
+
this.createUserRequest = (username) => {
|
|
3729
|
+
let truUser = new TruAuthUserRequest();
|
|
3730
|
+
truUser.username = username;
|
|
3731
|
+
return truUser;
|
|
3732
|
+
};
|
|
3728
3733
|
this.baseUrl = this.appEnvironment.appUri;
|
|
3729
3734
|
}
|
|
3730
3735
|
login(loginRequest) {
|
|
3731
3736
|
return this.http
|
|
3732
3737
|
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/login`, loginRequest)
|
|
3733
|
-
.pipe(tap((data
|
|
3738
|
+
.pipe(tap(switchMap(data => this.http
|
|
3739
|
+
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/user`, this.createUserRequest(loginRequest.username))
|
|
3740
|
+
.pipe(tap((user) => {
|
|
3734
3741
|
this.auth.doLoginUser(data);
|
|
3742
|
+
this.user.create(user);
|
|
3735
3743
|
this.loggedIn.next(true);
|
|
3736
|
-
}));
|
|
3744
|
+
})))));
|
|
3737
3745
|
}
|
|
3738
3746
|
logout() {
|
|
3739
3747
|
this.doLogoutUser();
|
|
3740
3748
|
}
|
|
3741
|
-
isLoggedIn$() {
|
|
3742
|
-
return this.auth.getCurrentUser().pipe(map(() => true), catchError(() => of(false)));
|
|
3743
|
-
}
|
|
3744
3749
|
get isLoggedIn() {
|
|
3745
3750
|
if (!this.loggedIn.value) {
|
|
3746
3751
|
this.loggedIn.next(this.auth.isLoggedIn());
|
|
3747
3752
|
}
|
|
3748
3753
|
return this.loggedIn.asObservable();
|
|
3749
3754
|
}
|
|
3750
|
-
getCurrentUser$() {
|
|
3751
|
-
return this.auth.getCurrentUser();
|
|
3752
|
-
}
|
|
3753
3755
|
doLogoutAndRedirectToLogin() {
|
|
3754
3756
|
this.doLogoutUser();
|
|
3755
3757
|
this.loggedIn.next(false);
|
|
@@ -3761,7 +3763,7 @@ class TruAuth {
|
|
|
3761
3763
|
this.auth.doLogoutUser();
|
|
3762
3764
|
}
|
|
3763
3765
|
}
|
|
3764
|
-
TruAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, deps: [{ token: i1$6.Router }, { token: i1$3.HttpClient }, { token: TruAuthCache }, { token: TruUser }, { token: TruAppEnvironment }, { token:
|
|
3766
|
+
TruAuth.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, deps: [{ token: i1$6.Router }, { token: i1$3.HttpClient }, { token: TruAuthCache }, { token: TruUser }, { token: TruAppEnvironment }, { token: TRU_AUTH_STRATEGY }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3765
3767
|
TruAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, providedIn: "root" });
|
|
3766
3768
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, decorators: [{
|
|
3767
3769
|
type: Injectable,
|
|
@@ -3769,7 +3771,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
3769
3771
|
providedIn: "root",
|
|
3770
3772
|
}]
|
|
3771
3773
|
}], ctorParameters: function () {
|
|
3772
|
-
return [{ type: i1$6.Router }, { type: i1$3.HttpClient }, { type: TruAuthCache }, { type: TruUser }, { type: TruAppEnvironment }, { type:
|
|
3774
|
+
return [{ type: i1$6.Router }, { type: i1$3.HttpClient }, { type: TruAuthCache }, { type: TruUser }, { type: TruAppEnvironment }, { type: undefined, decorators: [{
|
|
3773
3775
|
type: Inject,
|
|
3774
3776
|
args: [TRU_AUTH_STRATEGY]
|
|
3775
3777
|
}] }];
|
|
@@ -5988,29 +5990,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
5988
5990
|
args: [{ selector: 'tru-login', template: "<div class=\"login-wrapper\">\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSubmit()\">\r\n <mat-card class=\"animate-login\">\r\n <mat-card-header>\r\n <mat-card-title> loginFormTitle </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <mat-form-field>\r\n <mat-label>Username</mat-label>\r\n <input matInput formControlName=\"username\" placeholder=\"Username\">\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>Password</mat-label>\r\n <input matInput type=\"password\" formControlName=\"password\" placeholder=\"Password\">\r\n </mat-form-field>\r\n <div *ngIf=\"loginError\" class=\"animate-login-error animated rubberBand\">\r\n <p style=\"color: red; font-weight: bold;\"> {{ loginError }}</p>\r\n </div>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-raised-button color=\"primary\" type=\"submit\" [disabled]=\"isDisabled()\">Login</button>\r\n </mat-card-actions>\r\n </mat-card>\r\n </form>\r\n</div>\r\n", styles: [".login-container{display:flex;justify-content:center;align-items:center;height:100vh;margin:0;padding:0}.login-input{margin-bottom:20px}.animate-login{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;margin-top:50px}.wrapper{display:flex;justify-content:center;align-items:center;height:100vh}mat-card{max-width:300px;width:100%;max-height:300px;padding:20px}.form-group{width:100%;max-width:400px;margin-bottom:20px}.login-wrapper{display:flex;justify-content:center;align-items:center;height:100vh}::ng-deep .login-wrapper .mat-mdc-text-field-wrapper{padding:0 16px!important}\n"] }]
|
|
5989
5991
|
}], ctorParameters: function () { return [{ type: TruAuth }]; } });
|
|
5990
5992
|
|
|
5991
|
-
const helper = new JwtHelperService();
|
|
5992
5993
|
class TruAuthJwtStrategy {
|
|
5993
5994
|
constructor() {
|
|
5994
5995
|
this.JWT_ACCESS_TOKEN = "ACCESS_TOKEN";
|
|
5995
5996
|
this.JWT_REFRESH_TOKEN = "REFRESH_TOKEN";
|
|
5996
|
-
this.USER_CLAIMS = "USER_CLAIMS";
|
|
5997
5997
|
}
|
|
5998
5998
|
doLoginUser(token) {
|
|
5999
5999
|
localStorage.setItem(this.JWT_ACCESS_TOKEN, JSON.stringify(token.accessToken));
|
|
6000
6000
|
localStorage.setItem(this.JWT_REFRESH_TOKEN, JSON.stringify(token.refreshToken));
|
|
6001
|
-
localStorage.setItem(this.USER_CLAIMS, JSON.stringify(token.userClaims));
|
|
6002
6001
|
}
|
|
6003
6002
|
doLogoutUser() {
|
|
6004
6003
|
localStorage.removeItem(this.JWT_ACCESS_TOKEN);
|
|
6005
6004
|
}
|
|
6006
|
-
getCurrentUser() {
|
|
6007
|
-
let token = helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN));
|
|
6008
|
-
return of(JSON.parse(helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN))));
|
|
6009
|
-
}
|
|
6010
|
-
getUserRoles() {
|
|
6011
|
-
let token = helper.decodeToken(localStorage.getItem(this.JWT_ACCESS_TOKEN));
|
|
6012
|
-
return of(token);
|
|
6013
|
-
}
|
|
6014
6005
|
isLoggedIn() {
|
|
6015
6006
|
return !!this.getJwtToken();
|
|
6016
6007
|
}
|