UNPKG

angular-auth-oidc-client

Version:
51 lines 8.57 kB
import { Injectable, inject } from '@angular/core'; import { Observable, Subject } from 'rxjs'; import { tap } from 'rxjs/operators'; import { FlowHelper } from '../utils/flowHelper/flow-helper.service'; import { UrlService } from '../utils/url/url.service'; import { CodeFlowCallbackService } from './code-flow-callback.service'; import { ImplicitFlowCallbackService } from './implicit-flow-callback.service'; import * as i0 from "@angular/core"; export class CallbackService { constructor() { this.urlService = inject(UrlService); this.flowHelper = inject(FlowHelper); this.implicitFlowCallbackService = inject(ImplicitFlowCallbackService); this.codeFlowCallbackService = inject(CodeFlowCallbackService); this.stsCallbackInternal$ = new Subject(); } get stsCallback$() { return this.stsCallbackInternal$.asObservable(); } isCallback(currentUrl, config) { if (!currentUrl) { return false; } return this.urlService.isCallbackFromSts(currentUrl, config); } handleCallbackAndFireEvents(currentCallbackUrl, config, allConfigs) { let callback$ = new Observable(); if (this.flowHelper.isCurrentFlowCodeFlow(config)) { callback$ = this.codeFlowCallbackService.authenticatedCallbackWithCode(currentCallbackUrl, config, allConfigs); } else if (this.flowHelper.isCurrentFlowAnyImplicitFlow(config)) { if (currentCallbackUrl?.includes('#')) { const hash = currentCallbackUrl.substring(currentCallbackUrl.indexOf('#') + 1); callback$ = this.implicitFlowCallbackService.authenticatedImplicitFlowCallback(config, allConfigs, hash); } else { callback$ = this.implicitFlowCallbackService.authenticatedImplicitFlowCallback(config, allConfigs); } } return callback$.pipe(tap(() => this.stsCallbackInternal$.next())); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CallbackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CallbackService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CallbackService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGJhY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC9zcmMvbGliL2NhbGxiYWNrL2NhbGxiYWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRy9FLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoQyxnQ0FBMkIsR0FBRyxNQUFNLENBQ25ELDJCQUEyQixDQUM1QixDQUFDO1FBRWUsNEJBQXVCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFMUQseUJBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztLQWtEN0Q7SUFoREMsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxVQUFrQixFQUFFLE1BQTRCO1FBQ3pELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCwyQkFBMkIsQ0FDekIsa0JBQTBCLEVBQzFCLE1BQTJCLEVBQzNCLFVBQWlDO1FBRWpDLElBQUksU0FBUyxHQUFnQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xELFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsNkJBQTZCLENBQ3BFLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sVUFBVSxDQUNYLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDaEUsSUFBSSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUN2QyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUNwQyxDQUFDO2dCQUVGLFNBQVM7b0JBQ1AsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlDQUFpQyxDQUNoRSxNQUFNLEVBQ04sVUFBVSxFQUNWLElBQUksQ0FDTCxDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFNBQVM7b0JBQ1AsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGlDQUFpQyxDQUNoRSxNQUFNLEVBQ04sVUFBVSxDQUNYLENBQUM7WUFDTixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDOzhHQTVEVSxlQUFlO2tIQUFmLGVBQWUsY0FERixNQUFNOzsyRkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9wZW5JZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWcvb3BlbmlkLWNvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBDYWxsYmFja0NvbnRleHQgfSBmcm9tICcuLi9mbG93cy9jYWxsYmFjay1jb250ZXh0JztcclxuaW1wb3J0IHsgRmxvd0hlbHBlciB9IGZyb20gJy4uL3V0aWxzL2Zsb3dIZWxwZXIvZmxvdy1oZWxwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFVybFNlcnZpY2UgfSBmcm9tICcuLi91dGlscy91cmwvdXJsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb2RlRmxvd0NhbGxiYWNrU2VydmljZSB9IGZyb20gJy4vY29kZS1mbG93LWNhbGxiYWNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbXBsaWNpdEZsb3dDYWxsYmFja1NlcnZpY2UgfSBmcm9tICcuL2ltcGxpY2l0LWZsb3ctY2FsbGJhY2suc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ2FsbGJhY2tTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHVybFNlcnZpY2UgPSBpbmplY3QoVXJsU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZmxvd0hlbHBlciA9IGluamVjdChGbG93SGVscGVyKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpbXBsaWNpdEZsb3dDYWxsYmFja1NlcnZpY2UgPSBpbmplY3QoXHJcbiAgICBJbXBsaWNpdEZsb3dDYWxsYmFja1NlcnZpY2VcclxuICApO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGNvZGVGbG93Q2FsbGJhY2tTZXJ2aWNlID0gaW5qZWN0KENvZGVGbG93Q2FsbGJhY2tTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzdHNDYWxsYmFja0ludGVybmFsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCBzdHNDYWxsYmFjayQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdHNDYWxsYmFja0ludGVybmFsJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGlzQ2FsbGJhY2soY3VycmVudFVybDogc3RyaW5nLCBjb25maWc/OiBPcGVuSWRDb25maWd1cmF0aW9uKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWN1cnJlbnRVcmwpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnVybFNlcnZpY2UuaXNDYWxsYmFja0Zyb21TdHMoY3VycmVudFVybCwgY29uZmlnKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNhbGxiYWNrQW5kRmlyZUV2ZW50cyhcclxuICAgIGN1cnJlbnRDYWxsYmFja1VybDogc3RyaW5nLFxyXG4gICAgY29uZmlnOiBPcGVuSWRDb25maWd1cmF0aW9uLFxyXG4gICAgYWxsQ29uZmlnczogT3BlbklkQ29uZmlndXJhdGlvbltdXHJcbiAgKTogT2JzZXJ2YWJsZTxDYWxsYmFja0NvbnRleHQ+IHtcclxuICAgIGxldCBjYWxsYmFjayQ6IE9ic2VydmFibGU8Q2FsbGJhY2tDb250ZXh0PiA9IG5ldyBPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZmxvd0hlbHBlci5pc0N1cnJlbnRGbG93Q29kZUZsb3coY29uZmlnKSkge1xyXG4gICAgICBjYWxsYmFjayQgPSB0aGlzLmNvZGVGbG93Q2FsbGJhY2tTZXJ2aWNlLmF1dGhlbnRpY2F0ZWRDYWxsYmFja1dpdGhDb2RlKFxyXG4gICAgICAgIGN1cnJlbnRDYWxsYmFja1VybCxcclxuICAgICAgICBjb25maWcsXHJcbiAgICAgICAgYWxsQ29uZmlnc1xyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmZsb3dIZWxwZXIuaXNDdXJyZW50Rmxvd0FueUltcGxpY2l0Rmxvdyhjb25maWcpKSB7XHJcbiAgICAgIGlmIChjdXJyZW50Q2FsbGJhY2tVcmw/LmluY2x1ZGVzKCcjJykpIHtcclxuICAgICAgICBjb25zdCBoYXNoID0gY3VycmVudENhbGxiYWNrVXJsLnN1YnN0cmluZyhcclxuICAgICAgICAgIGN1cnJlbnRDYWxsYmFja1VybC5pbmRleE9mKCcjJykgKyAxXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY2FsbGJhY2skID1cclxuICAgICAgICAgIHRoaXMuaW1wbGljaXRGbG93Q2FsbGJhY2tTZXJ2aWNlLmF1dGhlbnRpY2F0ZWRJbXBsaWNpdEZsb3dDYWxsYmFjayhcclxuICAgICAgICAgICAgY29uZmlnLFxyXG4gICAgICAgICAgICBhbGxDb25maWdzLFxyXG4gICAgICAgICAgICBoYXNoXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNhbGxiYWNrJCA9XHJcbiAgICAgICAgICB0aGlzLmltcGxpY2l0Rmxvd0NhbGxiYWNrU2VydmljZS5hdXRoZW50aWNhdGVkSW1wbGljaXRGbG93Q2FsbGJhY2soXHJcbiAgICAgICAgICAgIGNvbmZpZyxcclxuICAgICAgICAgICAgYWxsQ29uZmlnc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjYWxsYmFjayQucGlwZSh0YXAoKCkgPT4gdGhpcy5zdHNDYWxsYmFja0ludGVybmFsJC5uZXh0KCkpKTtcclxuICB9XHJcbn1cclxuIl19