UNPKG

6.19 kBJavaScriptView Raw
1import { Injectable } from '@angular/core';
2import { BehaviorSubject, of as observableOf } from 'rxjs';
3import { filter, share } from 'rxjs/operators';
4import * as i0 from "@angular/core";
5import * as i1 from "./token-storage";
6/**
7 * Service that allows you to manage authentication token - get, set, clear and also listen to token changes over time.
8 */
9export class NbTokenService {
10 constructor(tokenStorage) {
11 this.tokenStorage = tokenStorage;
12 this.token$ = new BehaviorSubject(null);
13 this.publishStoredToken();
14 }
15 /**
16 * Publishes token when it changes.
17 * @returns {Observable<NbAuthToken>}
18 */
19 tokenChange() {
20 return this.token$
21 .pipe(filter(value => !!value), share());
22 }
23 /**
24 * Sets a token into the storage. This method is used by the NbAuthService automatically.
25 *
26 * @param {NbAuthToken} token
27 * @returns {Observable<any>}
28 */
29 set(token) {
30 this.tokenStorage.set(token);
31 this.publishStoredToken();
32 return observableOf(null);
33 }
34 /**
35 * Returns observable of current token
36 * @returns {Observable<NbAuthToken>}
37 */
38 get() {
39 const token = this.tokenStorage.get();
40 return observableOf(token);
41 }
42 /**
43 * Removes the token and published token value
44 *
45 * @returns {Observable<any>}
46 */
47 clear() {
48 this.tokenStorage.clear();
49 this.publishStoredToken();
50 return observableOf(null);
51 }
52 publishStoredToken() {
53 this.token$.next(this.tokenStorage.get());
54 }
55}
56NbTokenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbTokenService, deps: [{ token: i1.NbTokenStorage }], target: i0.ɵɵFactoryTarget.Injectable });
57NbTokenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbTokenService });
58i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: NbTokenService, decorators: [{
59 type: Injectable
60 }], ctorParameters: function () { return [{ type: i1.NbTokenStorage }]; } });
61//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9mcmFtZXdvcmsvYXV0aC9zZXJ2aWNlcy90b2tlbi90b2tlbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGVBQWUsRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUsvQzs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBSXpCLFlBQXNCLFlBQTRCO1FBQTVCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUZ4QyxXQUFNLEdBQWlDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3pFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLElBQUksQ0FDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3hCLEtBQUssRUFBRSxDQUNSLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsS0FBa0I7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUc7UUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7NEdBdERVLGNBQWM7Z0hBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc2hhcmUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE5iVG9rZW5TdG9yYWdlIH0gZnJvbSAnLi90b2tlbi1zdG9yYWdlJztcbmltcG9ydCB7IE5iQXV0aFRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbi8qKlxuICogU2VydmljZSB0aGF0IGFsbG93cyB5b3UgdG8gbWFuYWdlIGF1dGhlbnRpY2F0aW9uIHRva2VuIC0gZ2V0LCBzZXQsIGNsZWFyIGFuZCBhbHNvIGxpc3RlbiB0byB0b2tlbiBjaGFuZ2VzIG92ZXIgdGltZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5iVG9rZW5TZXJ2aWNlIHtcblxuICBwcm90ZWN0ZWQgdG9rZW4kOiBCZWhhdmlvclN1YmplY3Q8TmJBdXRoVG9rZW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgdG9rZW5TdG9yYWdlOiBOYlRva2VuU3RvcmFnZSkge1xuICAgIHRoaXMucHVibGlzaFN0b3JlZFRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGlzaGVzIHRva2VuIHdoZW4gaXQgY2hhbmdlcy5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8TmJBdXRoVG9rZW4+fVxuICAgKi9cbiAgdG9rZW5DaGFuZ2UoKTogT2JzZXJ2YWJsZTxOYkF1dGhUb2tlbj4ge1xuICAgIHJldHVybiB0aGlzLnRva2VuJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhIXZhbHVlKSxcbiAgICAgICAgc2hhcmUoKSxcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhIHRva2VuIGludG8gdGhlIHN0b3JhZ2UuIFRoaXMgbWV0aG9kIGlzIHVzZWQgYnkgdGhlIE5iQXV0aFNlcnZpY2UgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogQHBhcmFtIHtOYkF1dGhUb2tlbn0gdG9rZW5cbiAgICogQHJldHVybnMge09ic2VydmFibGU8YW55Pn1cbiAgICovXG4gIHNldCh0b2tlbjogTmJBdXRoVG9rZW4pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICB0aGlzLnRva2VuU3RvcmFnZS5zZXQodG9rZW4pO1xuICAgIHRoaXMucHVibGlzaFN0b3JlZFRva2VuKCk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVPZihudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIG9ic2VydmFibGUgb2YgY3VycmVudCB0b2tlblxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxOYkF1dGhUb2tlbj59XG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxOYkF1dGhUb2tlbj4ge1xuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlblN0b3JhZ2UuZ2V0KCk7XG4gICAgcmV0dXJuIG9ic2VydmFibGVPZih0b2tlbik7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgdG9rZW4gYW5kIHB1Ymxpc2hlZCB0b2tlbiB2YWx1ZVxuICAgKlxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fVxuICAgKi9cbiAgY2xlYXIoKTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgdGhpcy50b2tlblN0b3JhZ2UuY2xlYXIoKTtcbiAgICB0aGlzLnB1Ymxpc2hTdG9yZWRUb2tlbigpO1xuICAgIHJldHVybiBvYnNlcnZhYmxlT2YobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHVibGlzaFN0b3JlZFRva2VuKCkge1xuICAgIHRoaXMudG9rZW4kLm5leHQodGhpcy50b2tlblN0b3JhZ2UuZ2V0KCkpO1xuICB9XG59XG4iXX0=
\No newline at end of file