UNPKG

angular-simple-oidc

Version:

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

43 lines 7.24 kB
import { InjectionToken, APP_INITIALIZER, Optional } from '@angular/core'; import { isObservable, of } from 'rxjs'; import { ConfigService } from 'angular-simple-oidc/config'; import { EventsService } from 'angular-simple-oidc/events'; import { tap, catchError } from 'rxjs/operators'; import { POPUP_AUTHORIZATION_CONFIG_REQUIRED_FIELDS } from './models'; import { PopupAuthorizationConfigurationMissingError } from './errors'; export const POPUP_AUTHORIZATION_CONFIG_SERVICE = new InjectionToken('POPUP_AUTHORIZATION_CONFIG_SERVICE'); export const POPUP_AUTHORIZATION_CONFIG = new InjectionToken('POPUP_AUTHORIZATION_CONFIG'); const defaultConfig = {}; export function PopupAuthorizationConfigFactory(configInput, configService, events) { if (!configInput) { throw new PopupAuthorizationConfigurationMissingError(); } const config$ = isObservable(configInput) ? configInput : of(configInput); return () => config$.pipe(tap(config => configService.configure(config, { defaultConfig, requiredFields: POPUP_AUTHORIZATION_CONFIG_REQUIRED_FIELDS })), catchError(e => { // make sure this errors get logged. console.error('Callback failed in POPUP_AUTHORIZATION_CONFIG_INITIALIZER'); console.error(e); events.dispatchError(e); // Do not prevent bootstrapping in order to be able to handle errors gracefully. return of(null); })) .toPromise(); } export const POPUP_AUTHORIZATION_CONFIG_INITIALIZER = { multi: true, provide: APP_INITIALIZER, deps: [ [new Optional(), POPUP_AUTHORIZATION_CONFIG], POPUP_AUTHORIZATION_CONFIG_SERVICE, EventsService ], useFactory: PopupAuthorizationConfigFactory }; export const POPUP_AUTHORIZATION_CONFIG_SERVICE_PROVIDER = { provide: POPUP_AUTHORIZATION_CONFIG_SERVICE, useClass: ConfigService, }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1zaW1wbGUtb2lkYy9zcmMvbGliL3BvcHVwLWF1dGhvcml6YXRpb24vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQWMsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUE0QiwwQ0FBMEMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQzNDLElBQUksY0FBYyxDQUEwQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBRXRHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNuQyxJQUFJLGNBQWMsQ0FBa0UsNEJBQTRCLENBQUMsQ0FBQztBQUV0SCxNQUFNLGFBQWEsR0FBc0MsRUFBRSxDQUFDO0FBRTVELE1BQU0sVUFBVSwrQkFBK0IsQ0FDM0MsV0FBNEUsRUFDNUUsYUFBc0QsRUFDdEQsTUFBcUI7SUFFckIsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNkLE1BQU0sSUFBSSwyQ0FBMkMsRUFBRSxDQUFDO0tBQzNEO0lBRUQsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxRSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQzFDLGFBQWE7UUFDYixjQUFjLEVBQUUsMENBQTBDO0tBQzdELENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUVYLG9DQUFvQztRQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVqQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXhCLGdGQUFnRjtRQUNoRixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FDTDtTQUNJLFNBQVMsRUFBRSxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRztJQUNsRCxLQUFLLEVBQUUsSUFBSTtJQUNYLE9BQU8sRUFBRSxlQUFlO0lBQ3hCLElBQUksRUFBRTtRQUNGLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQztRQUM1QyxrQ0FBa0M7UUFDbEMsYUFBYTtLQUNoQjtJQUNELFVBQVUsRUFBRSwrQkFBK0I7Q0FDOUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFhO0lBQ2pFLE9BQU8sRUFBRSxrQ0FBa0M7SUFDM0MsUUFBUSxFQUFFLGFBQWE7Q0FDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciwgQVBQX0lOSVRJQUxJWkVSLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItc2ltcGxlLW9pZGMvY29uZmlnJztcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICdhbmd1bGFyLXNpbXBsZS1vaWRjL2V2ZW50cyc7XG5pbXBvcnQgeyB0YXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBQb3B1cEF1dGhvcml6YXRpb25Db25maWcsIFBPUFVQX0FVVEhPUklaQVRJT05fQ09ORklHX1JFUVVJUkVEX0ZJRUxEUyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZ3VyYXRpb25NaXNzaW5nRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5cbmV4cG9ydCBjb25zdCBQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFID1cbiAgICBuZXcgSW5qZWN0aW9uVG9rZW48Q29uZmlnU2VydmljZTxQb3B1cEF1dGhvcml6YXRpb25Db25maWc+PignUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUdfU0VSVklDRScpO1xuXG5leHBvcnQgY29uc3QgUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUcgPVxuICAgIG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZz4gfCBQb3B1cEF1dGhvcml6YXRpb25Db25maWc+KCdQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJRycpO1xuXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBQYXJ0aWFsPFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZz4gPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZ0ZhY3RvcnkoXG4gICAgY29uZmlnSW5wdXQ6IE9ic2VydmFibGU8UG9wdXBBdXRob3JpemF0aW9uQ29uZmlnPiB8IFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZyxcbiAgICBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlPFBvcHVwQXV0aG9yaXphdGlvbkNvbmZpZz4sXG4gICAgZXZlbnRzOiBFdmVudHNTZXJ2aWNlKSB7XG5cbiAgICBpZiAoIWNvbmZpZ0lucHV0KSB7XG4gICAgICAgIHRocm93IG5ldyBQb3B1cEF1dGhvcml6YXRpb25Db25maWd1cmF0aW9uTWlzc2luZ0Vycm9yKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29uZmlnJCA9IGlzT2JzZXJ2YWJsZShjb25maWdJbnB1dCkgPyBjb25maWdJbnB1dCA6IG9mKGNvbmZpZ0lucHV0KTtcblxuICAgIHJldHVybiAoKSA9PiBjb25maWckLnBpcGUoXG4gICAgICAgIHRhcChjb25maWcgPT4gY29uZmlnU2VydmljZS5jb25maWd1cmUoY29uZmlnLCB7XG4gICAgICAgICAgICBkZWZhdWx0Q29uZmlnLFxuICAgICAgICAgICAgcmVxdWlyZWRGaWVsZHM6IFBPUFVQX0FVVEhPUklaQVRJT05fQ09ORklHX1JFUVVJUkVEX0ZJRUxEU1xuICAgICAgICB9KSksXG4gICAgICAgIGNhdGNoRXJyb3IoZSA9PiB7XG5cbiAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGlzIGVycm9ycyBnZXQgbG9nZ2VkLlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQ2FsbGJhY2sgZmFpbGVkIGluIFBPUFVQX0FVVEhPUklaQVRJT05fQ09ORklHX0lOSVRJQUxJWkVSJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuXG4gICAgICAgICAgICBldmVudHMuZGlzcGF0Y2hFcnJvcihlKTtcblxuICAgICAgICAgICAgLy8gRG8gbm90IHByZXZlbnQgYm9vdHN0cmFwcGluZyBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseS5cbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSlcbiAgICApXG4gICAgICAgIC50b1Byb21pc2UoKTtcbn1cblxuZXhwb3J0IGNvbnN0IFBPUFVQX0FVVEhPUklaQVRJT05fQ09ORklHX0lOSVRJQUxJWkVSID0ge1xuICAgIG11bHRpOiB0cnVlLFxuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICBkZXBzOiBbXG4gICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUddLFxuICAgICAgICBQT1BVUF9BVVRIT1JJWkFUSU9OX0NPTkZJR19TRVJWSUNFLFxuICAgICAgICBFdmVudHNTZXJ2aWNlXG4gICAgXSxcbiAgICB1c2VGYWN0b3J5OiBQb3B1cEF1dGhvcml6YXRpb25Db25maWdGYWN0b3J5XG59O1xuXG5leHBvcnQgY29uc3QgUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUdfU0VSVklDRV9QUk9WSURFUjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogUE9QVVBfQVVUSE9SSVpBVElPTl9DT05GSUdfU0VSVklDRSxcbiAgICB1c2VDbGFzczogQ29uZmlnU2VydmljZSxcbn07XG4iXX0=