angular-simple-oidc
Version:
Angular Library implementing Open Id Connect specification. Code Flow, Refresh Tokens, Session Management, Discovery Document.
43 lines • 7.24 kB
JavaScript
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=