@trudb/tru-common-lib 0.0.701 → 0.0.702
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 -17
- package/fesm2015/trudb-tru-common-lib.mjs +17 -27
- package/fesm2015/trudb-tru-common-lib.mjs.map +1 -1
- package/fesm2020/trudb-tru-common-lib.mjs +17 -27
- 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,51 @@
|
|
|
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) => {
|
|
31
|
-
this.
|
|
33
|
+
.pipe(tap((data) => { this.auth.doLoginUser(data); }, switchMap(data => this.http
|
|
34
|
+
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/user`, this.createUserRequest(loginRequest.username))
|
|
35
|
+
.pipe(tap((user) => {
|
|
36
|
+
this.user.create(user);
|
|
32
37
|
this.loggedIn.next(true);
|
|
33
|
-
}));
|
|
38
|
+
})))));
|
|
34
39
|
}
|
|
35
40
|
logout() {
|
|
36
41
|
this.doLogoutUser();
|
|
37
42
|
}
|
|
38
|
-
isLoggedIn$() {
|
|
39
|
-
return this.auth.getCurrentUser().pipe(map(() => true), catchError(() => of(false)));
|
|
40
|
-
}
|
|
41
43
|
get isLoggedIn() {
|
|
42
44
|
if (!this.loggedIn.value) {
|
|
43
45
|
this.loggedIn.next(this.auth.isLoggedIn());
|
|
44
46
|
}
|
|
45
47
|
return this.loggedIn.asObservable();
|
|
46
48
|
}
|
|
47
|
-
getCurrentUser$() {
|
|
48
|
-
return this.auth.getCurrentUser();
|
|
49
|
-
}
|
|
50
49
|
doLogoutAndRedirectToLogin() {
|
|
51
50
|
this.doLogoutUser();
|
|
52
51
|
this.loggedIn.next(false);
|
|
@@ -58,15 +57,15 @@ export class TruAuth {
|
|
|
58
57
|
this.auth.doLogoutUser();
|
|
59
58
|
}
|
|
60
59
|
}
|
|
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:
|
|
60
|
+
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
61
|
TruAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, providedIn: "root" });
|
|
63
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, decorators: [{
|
|
64
63
|
type: Injectable,
|
|
65
64
|
args: [{
|
|
66
65
|
providedIn: "root",
|
|
67
66
|
}]
|
|
68
|
-
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.TruAuthCache }, { type: i4.TruUser }, { type: i5.TruAppEnvironment }, { type:
|
|
67
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.HttpClient }, { type: i3.TruAuthCache }, { type: i4.TruUser }, { type: i5.TruAppEnvironment }, { type: undefined, decorators: [{
|
|
69
68
|
type: Inject,
|
|
70
69
|
args: [TRU_AUTH_STRATEGY]
|
|
71
70
|
}] }]; } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnUtY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvbG9naW4vc2VydmljZXMvdHJ1LWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUduRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBbUIsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFLdEUsTUFBTSxPQUFPLE9BQU87SUFJbEIsWUFDVSxNQUFjLEVBQ2QsSUFBZ0IsRUFDaEIsS0FBbUIsRUFDbkIsSUFBYSxFQUNiLGNBQWlDLEVBQ04sSUFBMEI7UUFMckQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sU0FBSSxHQUFKLElBQUksQ0FBc0I7UUFUdkQsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFhckIsc0JBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFzQixFQUFFO1lBQ2pFLElBQUksT0FBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUM1QixPQUFPLE9BQU8sQ0FBQztRQUNuQixDQUFDLENBQUE7UUFQQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFRRCxLQUFLLENBQUMsWUFBaUM7UUFDckMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLElBQUksQ0FBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sUUFBUSxFQUFFLFlBQVksQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7YUFDdEIsSUFBSSxDQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMxRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFnQixDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7b0dBdERVLE9BQU8sc0pBVVIsaUJBQWlCO3dHQVZoQixPQUFPLGNBRk4sTUFBTTsyRkFFUCxPQUFPO2tCQUhuQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBV0ksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBUcnVBdXRoTG9naW5SZXF1ZXN0IH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LWF1dGgtbG9naW4tcmVxdWVzdFwiO1xyXG5pbXBvcnQgeyBUcnVBdXRoQ2FjaGUgfSBmcm9tIFwiLi90cnUtYXV0aC1jYWNoZVwiO1xyXG5pbXBvcnQgeyBUUlVfQVVUSF9TVFJBVEVHWSB9IGZyb20gXCIuLi9jbGFzc2VzL3RydS1hdXRoLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBUcnVBdXRoU3RyYXRlZ3kgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtYXV0aC1jb25maWdcIjtcclxuaW1wb3J0IHsgVFJVX0FVVEhfQ09ORklHIH0gZnJvbSBcIi4uL2NsYXNzZXMvdHJ1LWF1dGgtY29uZmlnXCI7XHJcbmltcG9ydCB7IHRhcCwgbWFwLCBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgSVRydVVzZXIsIFRydVVzZXIgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdHJ1LXVzZXJcIjtcclxuaW1wb3J0IHsgVHJ1QXBwRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvdHJ1LWFwcC1lbnZpcm9ubWVudFwiO1xyXG5pbXBvcnQgeyBUcnVBdXRoVXNlclJlcXVlc3QgfSBmcm9tIFwiLi4vY2xhc3Nlcy90cnUtYXV0aC11c2VyLXJlcXVlc3RcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFRydUF1dGgge1xyXG4gIHByaXZhdGUgbG9nZ2VkSW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGNhY2hlOiBUcnVBdXRoQ2FjaGUsXHJcbiAgICBwcml2YXRlIHVzZXI6IFRydVVzZXIsXHJcbiAgICBwcml2YXRlIGFwcEVudmlyb25tZW50OiBUcnVBcHBFbnZpcm9ubWVudCxcclxuICAgIEBJbmplY3QoVFJVX0FVVEhfU1RSQVRFR1kpIHByaXZhdGUgYXV0aDogVHJ1QXV0aFN0cmF0ZWd5PGFueT5cclxuICApIHtcclxuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMuYXBwRW52aXJvbm1lbnQuYXBwVXJpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVVc2VyUmVxdWVzdCA9ICh1c2VybmFtZTogc3RyaW5nKTogVHJ1QXV0aFVzZXJSZXF1ZXN0ID0+IHtcclxuICAgICAgbGV0IHRydVVzZXIgPSBuZXcgVHJ1QXV0aFVzZXJSZXF1ZXN0KCk7XHJcbiAgICAgIHRydVVzZXIudXNlcm5hbWUgPSB1c2VybmFtZTtcclxuICAgICAgcmV0dXJuIHRydVVzZXI7IFxyXG4gIH1cclxuXHJcbiAgbG9naW4obG9naW5SZXF1ZXN0OiBUcnVBdXRoTG9naW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAucG9zdDxhbnk+KGAke3RoaXMuYmFzZVVybH0ke1RSVV9BVVRIX0NPTkZJRy5hdXRoVXJsfS9sb2dpbmAsIGxvZ2luUmVxdWVzdClcclxuICAgICAgICAucGlwZSh0YXAoKGRhdGEpID0+IHsgdGhpcy5hdXRoLmRvTG9naW5Vc2VyKGRhdGEpOyB9LFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoZGF0YSA9PiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5wb3N0PGFueT4oYCR7dGhpcy5iYXNlVXJsfSR7VFJVX0FVVEhfQ09ORklHLmF1dGhVcmx9L3VzZXJgLCB0aGlzLmNyZWF0ZVVzZXJSZXF1ZXN0KGxvZ2luUmVxdWVzdC51c2VybmFtZSkpXHJcbiAgICAgICAgICAgICAgICAucGlwZSh0YXAoKHVzZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXIuY3JlYXRlKHVzZXIgYXMgSVRydVVzZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VkSW4ubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgfSkpKSkpOyBcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIHRoaXMuZG9Mb2dvdXRVc2VyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNMb2dnZWRJbigpIHtcclxuICAgIGlmICghdGhpcy5sb2dnZWRJbi52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvZ2dlZEluLm5leHQodGhpcy5hdXRoLmlzTG9nZ2VkSW4oKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5sb2dnZWRJbi5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGRvTG9nb3V0QW5kUmVkaXJlY3RUb0xvZ2luKCkge1xyXG4gICAgdGhpcy5kb0xvZ291dFVzZXIoKTtcclxuICAgIHRoaXMubG9nZ2VkSW4ubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJcIl0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkb0xvZ291dFVzZXIoKSB7XHJcbiAgICB0aGlzLnVzZXIuZGVzdHJveSgpO1xyXG4gICAgdGhpcy5jYWNoZS5wcnVuZUFsbCgpO1xyXG4gICAgdGhpcy5hdXRoLmRvTG9nb3V0VXNlcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -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,41 @@ 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) => {
|
|
3734
|
-
this.
|
|
3738
|
+
.pipe(tap((data) => { this.auth.doLoginUser(data); }, switchMap(data => this.http
|
|
3739
|
+
.post(`${this.baseUrl}${TRU_AUTH_CONFIG.authUrl}/user`, this.createUserRequest(loginRequest.username))
|
|
3740
|
+
.pipe(tap((user) => {
|
|
3741
|
+
this.user.create(user);
|
|
3735
3742
|
this.loggedIn.next(true);
|
|
3736
|
-
}));
|
|
3743
|
+
})))));
|
|
3737
3744
|
}
|
|
3738
3745
|
logout() {
|
|
3739
3746
|
this.doLogoutUser();
|
|
3740
3747
|
}
|
|
3741
|
-
isLoggedIn$() {
|
|
3742
|
-
return this.auth.getCurrentUser().pipe(map(() => true), catchError(() => of(false)));
|
|
3743
|
-
}
|
|
3744
3748
|
get isLoggedIn() {
|
|
3745
3749
|
if (!this.loggedIn.value) {
|
|
3746
3750
|
this.loggedIn.next(this.auth.isLoggedIn());
|
|
3747
3751
|
}
|
|
3748
3752
|
return this.loggedIn.asObservable();
|
|
3749
3753
|
}
|
|
3750
|
-
getCurrentUser$() {
|
|
3751
|
-
return this.auth.getCurrentUser();
|
|
3752
|
-
}
|
|
3753
3754
|
doLogoutAndRedirectToLogin() {
|
|
3754
3755
|
this.doLogoutUser();
|
|
3755
3756
|
this.loggedIn.next(false);
|
|
@@ -3761,7 +3762,7 @@ class TruAuth {
|
|
|
3761
3762
|
this.auth.doLogoutUser();
|
|
3762
3763
|
}
|
|
3763
3764
|
}
|
|
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:
|
|
3765
|
+
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
3766
|
TruAuth.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, providedIn: "root" });
|
|
3766
3767
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TruAuth, decorators: [{
|
|
3767
3768
|
type: Injectable,
|
|
@@ -3769,7 +3770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
3769
3770
|
providedIn: "root",
|
|
3770
3771
|
}]
|
|
3771
3772
|
}], ctorParameters: function () {
|
|
3772
|
-
return [{ type: i1$6.Router }, { type: i1$3.HttpClient }, { type: TruAuthCache }, { type: TruUser }, { type: TruAppEnvironment }, { type:
|
|
3773
|
+
return [{ type: i1$6.Router }, { type: i1$3.HttpClient }, { type: TruAuthCache }, { type: TruUser }, { type: TruAppEnvironment }, { type: undefined, decorators: [{
|
|
3773
3774
|
type: Inject,
|
|
3774
3775
|
args: [TRU_AUTH_STRATEGY]
|
|
3775
3776
|
}] }];
|
|
@@ -5988,29 +5989,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
5988
5989
|
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
5990
|
}], ctorParameters: function () { return [{ type: TruAuth }]; } });
|
|
5990
5991
|
|
|
5991
|
-
const helper = new JwtHelperService();
|
|
5992
5992
|
class TruAuthJwtStrategy {
|
|
5993
5993
|
constructor() {
|
|
5994
5994
|
this.JWT_ACCESS_TOKEN = "ACCESS_TOKEN";
|
|
5995
5995
|
this.JWT_REFRESH_TOKEN = "REFRESH_TOKEN";
|
|
5996
|
-
this.USER_CLAIMS = "USER_CLAIMS";
|
|
5997
5996
|
}
|
|
5998
5997
|
doLoginUser(token) {
|
|
5999
5998
|
localStorage.setItem(this.JWT_ACCESS_TOKEN, JSON.stringify(token.accessToken));
|
|
6000
5999
|
localStorage.setItem(this.JWT_REFRESH_TOKEN, JSON.stringify(token.refreshToken));
|
|
6001
|
-
localStorage.setItem(this.USER_CLAIMS, JSON.stringify(token.userClaims));
|
|
6002
6000
|
}
|
|
6003
6001
|
doLogoutUser() {
|
|
6004
6002
|
localStorage.removeItem(this.JWT_ACCESS_TOKEN);
|
|
6005
6003
|
}
|
|
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
6004
|
isLoggedIn() {
|
|
6015
6005
|
return !!this.getJwtToken();
|
|
6016
6006
|
}
|