UNPKG

7.6 kBJavaScriptView Raw
1import { Inject, Injectable, InjectionToken } from '@angular/core';
2import { nbAuthCreateToken } from './token';
3import { NB_AUTH_TOKENS } from '../../auth.options';
4import * as i0 from "@angular/core";
5export const NB_AUTH_FALLBACK_TOKEN = new InjectionToken('Nebular Auth Options');
6/**
7 * Creates a token parcel which could be stored/restored
8 */
9export 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}
48NbAuthTokenParceler.ɵ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 });
49NbAuthTokenParceler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbAuthTokenParceler });
50i0.ɵɵ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