1 | import { Inject, Injectable, InjectionToken } from '@angular/core';
|
2 | import { nbAuthCreateToken } from './token';
|
3 | import { NB_AUTH_TOKENS } from '../../auth.options';
|
4 | import * as i0 from "@angular/core";
|
5 | export const NB_AUTH_FALLBACK_TOKEN = new InjectionToken('Nebular Auth Options');
|
6 | /**
|
7 | * Creates a token parcel which could be stored/restored
|
8 | */
|
9 | export class NbAuthTokenParceler {
|
10 | constructor(fallbackClass, tokenClasses) {
|
11 | this.fallbackClass = fallbackClass;
|
12 | this.tokenClasses = tokenClasses;
|
13 | }
|
14 | wrap(token) {
|
15 | return JSON.stringify({
|
16 | name: token.getName(),
|
17 | ownerStrategyName: token.getOwnerStrategyName(),
|
18 | createdAt: token.getCreatedAt().getTime(),
|
19 | value: token.toString(),
|
20 | });
|
21 | }
|
22 | unwrap(value) {
|
23 | let tokenClass = this.fallbackClass;
|
24 | let tokenValue = '';
|
25 | let tokenOwnerStrategyName = '';
|
26 | let tokenCreatedAt = null;
|
27 | const tokenPack = this.parseTokenPack(value);
|
28 | if (tokenPack) {
|
29 | tokenClass = this.getClassByName(tokenPack.name) || this.fallbackClass;
|
30 | tokenValue = tokenPack.value;
|
31 | tokenOwnerStrategyName = tokenPack.ownerStrategyName;
|
32 | tokenCreatedAt = new Date(Number(tokenPack.createdAt));
|
33 | }
|
34 | return nbAuthCreateToken(tokenClass, tokenValue, tokenOwnerStrategyName, tokenCreatedAt);
|
35 | }
|
36 | // TODO: this could be moved to a separate token registry
|
37 | getClassByName(name) {
|
38 | return this.tokenClasses.find((tokenClass) => tokenClass.NAME === name);
|
39 | }
|
40 | parseTokenPack(value) {
|
41 | try {
|
42 | return JSON.parse(value);
|
43 | }
|
44 | catch (e) { }
|
45 | return null;
|
46 | }
|
47 | }
|
48 | NbAuthTokenParceler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbAuthTokenParceler, deps: [{ token: NB_AUTH_FALLBACK_TOKEN }, { token: NB_AUTH_TOKENS }], target: i0.ɵɵFactoryTarget.Injectable });
|
49 | NbAuthTokenParceler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbAuthTokenParceler });
|
50 | i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbAuthTokenParceler, decorators: [{
|
51 | type: Injectable
|
52 | }], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
53 | type: Inject,
|
54 | args: [NB_AUTH_FALLBACK_TOKEN]
|
55 | }] }, { type: undefined, decorators: [{
|
56 | type: Inject,
|
57 | args: [NB_AUTH_TOKENS]
|
58 | }] }]; } });
|
59 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcGFyY2VsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZnJhbWV3b3JrL2F1dGgvc2VydmljZXMvdG9rZW4vdG9rZW4tcGFyY2VsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5FLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUMsTUFBTSxTQUFTLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVNwRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsc0JBQXNCLENBQUMsQ0FBQztBQUVuRzs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0QsYUFBK0IsRUFDdkMsWUFBZ0M7UUFEeEIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQ3ZDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtJQUM1RSxDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNyQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUU7WUFDL0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDekMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFhO1FBQ2xCLElBQUksVUFBVSxHQUFxQixJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3RELElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUNoQyxJQUFJLGNBQWMsR0FBUyxJQUFJLENBQUM7UUFFaEMsTUFBTSxTQUFTLEdBQWdCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxTQUFTLEVBQUU7WUFDYixVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN2RSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUM3QixzQkFBc0IsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUM7WUFDckQsY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUN4RDtRQUVELE9BQU8saUJBQWlCLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUUzRixDQUFDO0lBRUQseURBQXlEO0lBQy9DLGNBQWMsQ0FBQyxJQUFJO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUE0QixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBSztRQUM1QixJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7aUhBM0NVLG1CQUFtQixrQkFFVixzQkFBc0IsYUFDdEIsY0FBYztxSEFIdkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQUdJLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBuYkF1dGhDcmVhdGVUb2tlbiwgTmJBdXRoVG9rZW4sIE5iQXV0aFRva2VuQ2xhc3MgfSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCB7IE5CX0FVVEhfVE9LRU5TIH0gZnJvbSAnLi4vLi4vYXV0aC5vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBOYlRva2VuUGFjayB7XG4gIG5hbWU6IHN0cmluZyxcbiAgb3duZXJTdHJhdGVneU5hbWU6IHN0cmluZyxcbiAgY3JlYXRlZEF0OiBOdW1iZXIsXG4gIHZhbHVlOiBzdHJpbmcsXG59XG5cbmV4cG9ydCBjb25zdCBOQl9BVVRIX0ZBTExCQUNLX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPE5iQXV0aFRva2VuQ2xhc3M+KCdOZWJ1bGFyIEF1dGggT3B0aW9ucycpO1xuXG4vKipcbiAqIENyZWF0ZXMgYSB0b2tlbiBwYXJjZWwgd2hpY2ggY291bGQgYmUgc3RvcmVkL3Jlc3RvcmVkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYkF1dGhUb2tlblBhcmNlbGVyIHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5CX0FVVEhfRkFMTEJBQ0tfVE9LRU4pIHByaXZhdGUgZmFsbGJhY2tDbGFzczogTmJBdXRoVG9rZW5DbGFzcyxcbiAgICAgICAgICAgICAgQEluamVjdChOQl9BVVRIX1RPS0VOUykgcHJpdmF0ZSB0b2tlbkNsYXNzZXM6IE5iQXV0aFRva2VuQ2xhc3NbXSkge1xuICB9XG5cbiAgd3JhcCh0b2tlbjogTmJBdXRoVG9rZW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICBuYW1lOiB0b2tlbi5nZXROYW1lKCksXG4gICAgICBvd25lclN0cmF0ZWd5TmFtZTogdG9rZW4uZ2V0T3duZXJTdHJhdGVneU5hbWUoKSxcbiAgICAgIGNyZWF0ZWRBdDogdG9rZW4uZ2V0Q3JlYXRlZEF0KCkuZ2V0VGltZSgpLFxuICAgICAgdmFsdWU6IHRva2VuLnRvU3RyaW5nKCksXG4gICAgfSk7XG4gIH1cblxuICB1bndyYXAodmFsdWU6IHN0cmluZyk6IE5iQXV0aFRva2VuIHtcbiAgICBsZXQgdG9rZW5DbGFzczogTmJBdXRoVG9rZW5DbGFzcyA9IHRoaXMuZmFsbGJhY2tDbGFzcztcbiAgICBsZXQgdG9rZW5WYWx1ZSA9ICcnO1xuICAgIGxldCB0b2tlbk93bmVyU3RyYXRlZ3lOYW1lID0gJyc7XG4gICAgbGV0IHRva2VuQ3JlYXRlZEF0OiBEYXRlID0gbnVsbDtcblxuICAgIGNvbnN0IHRva2VuUGFjazogTmJUb2tlblBhY2sgPSB0aGlzLnBhcnNlVG9rZW5QYWNrKHZhbHVlKTtcbiAgICBpZiAodG9rZW5QYWNrKSB7XG4gICAgICB0b2tlbkNsYXNzID0gdGhpcy5nZXRDbGFzc0J5TmFtZSh0b2tlblBhY2submFtZSkgfHwgdGhpcy5mYWxsYmFja0NsYXNzO1xuICAgICAgdG9rZW5WYWx1ZSA9IHRva2VuUGFjay52YWx1ZTtcbiAgICAgIHRva2VuT3duZXJTdHJhdGVneU5hbWUgPSB0b2tlblBhY2sub3duZXJTdHJhdGVneU5hbWU7XG4gICAgICB0b2tlbkNyZWF0ZWRBdCA9IG5ldyBEYXRlKE51bWJlcih0b2tlblBhY2suY3JlYXRlZEF0KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5iQXV0aENyZWF0ZVRva2VuKHRva2VuQ2xhc3MsIHRva2VuVmFsdWUsIHRva2VuT3duZXJTdHJhdGVneU5hbWUsIHRva2VuQ3JlYXRlZEF0KTtcblxuICB9XG5cbiAgLy8gVE9ETzogdGhpcyBjb3VsZCBiZSBtb3ZlZCB0byBhIHNlcGFyYXRlIHRva2VuIHJlZ2lzdHJ5XG4gIHByb3RlY3RlZCBnZXRDbGFzc0J5TmFtZShuYW1lKTogTmJBdXRoVG9rZW5DbGFzcyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5DbGFzc2VzLmZpbmQoKHRva2VuQ2xhc3M6IE5iQXV0aFRva2VuQ2xhc3MpID0+IHRva2VuQ2xhc3MuTkFNRSA9PT0gbmFtZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VUb2tlblBhY2sodmFsdWUpOiBOYlRva2VuUGFjayB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKTtcbiAgICB9IGNhdGNoIChlKSB7IH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19 |
\ | No newline at end of file |