UNPKG

angular-simple-oidc

Version:

Angular Library implementing Open Id Connect specification. Code Flow, Refresh Tokens, Session Management, Discovery Document.

31 lines 3.91 kB
import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil, switchMap } from 'rxjs/operators'; import { EventsService } from 'angular-simple-oidc/events'; import { filterInstanceOf } from 'angular-simple-oidc/operators'; import { AuthService } from '../auth.service'; import { AccessTokenExpiringEvent } from '../auth.events'; export class ExpiringTokenRefresherDaemonService { constructor(auth, events) { this.auth = auth; this.events = events; this.destroyedSubject = new Subject(); } startDaemon() { this.auth.events$ .pipe(filterInstanceOf(AccessTokenExpiringEvent), switchMap(() => this.auth.refreshAccessToken()), takeUntil(this.destroyedSubject)) .subscribe(); } ngOnDestroy() { this.destroyedSubject.next(); this.destroyedSubject.complete(); } } ExpiringTokenRefresherDaemonService.decorators = [ { type: Injectable } ]; ExpiringTokenRefresherDaemonService.ctorParameters = () => [ { type: AuthService }, { type: EventsService } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwaXJpbmctdG9rZW4tcmVmcmVzaGVyLWRhZW1vbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1zaW1wbGUtb2lkYy9zcmMvbGliL2RhZW1vbnMvZXhwaXJpbmctdG9rZW4tcmVmcmVzaGVyLWRhZW1vbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsTUFBTSxPQUFPLG1DQUFtQztJQUc5QyxZQUNxQixJQUFpQixFQUNqQixNQUFxQjtRQURyQixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFKdkIscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUtqRCxDQUFDO0lBRUcsV0FBVztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87YUFDZCxJQUFJLENBQ0gsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsRUFDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxFQUMvQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQ2pDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7WUF0QkYsVUFBVTs7O1lBSEYsV0FBVztZQUZYLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvZXZlbnRzJztcbmltcG9ydCB7IGZpbHRlckluc3RhbmNlT2YgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBY2Nlc3NUb2tlbkV4cGlyaW5nRXZlbnQgfSBmcm9tICcuLi9hdXRoLmV2ZW50cyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeHBpcmluZ1Rva2VuUmVmcmVzaGVyRGFlbW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95ZWRTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXV0aDogQXV0aFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGV2ZW50czogRXZlbnRzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIHN0YXJ0RGFlbW9uKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aC5ldmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVySW5zdGFuY2VPZihBY2Nlc3NUb2tlbkV4cGlyaW5nRXZlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5hdXRoLnJlZnJlc2hBY2Nlc3NUb2tlbigpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkU3ViamVjdClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZFN1YmplY3QubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkU3ViamVjdC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=