angular-auth-oidc-client
Version:
An OpenID Connect Code Flow with PKCE,Implicit Flow client for Angular
160 lines • 13.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
import { PlatformProvider } from './platform.provider';
import * as i0 from "@angular/core";
import * as i1 from "./platform.provider";
var ConfigurationProvider = /** @class */ (function () {
function ConfigurationProvider(platformProvider) {
this.platformProvider = platformProvider;
this.DEFAULT_CONFIG = {
stsServer: 'https://please_set',
redirect_url: 'https://please_set',
client_id: 'please_set',
response_type: 'code',
scope: 'openid email profile',
hd_param: '',
post_logout_redirect_uri: 'https://please_set',
start_checksession: false,
silent_renew: false,
silent_renew_url: 'https://please_set',
silent_renew_offset_in_seconds: 0,
post_login_route: '/',
forbidden_route: '/forbidden',
unauthorized_route: '/unauthorized',
auto_userinfo: true,
auto_clean_state_after_authentication: true,
trigger_authorization_result_event: false,
log_console_warning_active: true,
log_console_debug_active: false,
iss_validation_off: false,
history_cleanup_off: false,
max_id_token_iat_offset_allowed_in_seconds: 3,
disable_iat_offset_validation: false,
storage: typeof Storage !== 'undefined' ? sessionStorage : null,
};
this.INITIAL_AUTHWELLKNOWN = {
issuer: '',
jwks_uri: '',
authorization_endpoint: '',
token_endpoint: '',
userinfo_endpoint: '',
end_session_endpoint: '',
check_session_iframe: '',
revocation_endpoint: '',
introspection_endpoint: '',
};
this.mergedOpenIdConfiguration = this.DEFAULT_CONFIG;
this.authWellKnownEndpoints = this.INITIAL_AUTHWELLKNOWN;
this.onConfigurationChangeInternal = new Subject();
}
Object.defineProperty(ConfigurationProvider.prototype, "openIDConfiguration", {
get: /**
* @return {?}
*/
function () {
return this.mergedOpenIdConfiguration;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ConfigurationProvider.prototype, "wellKnownEndpoints", {
get: /**
* @return {?}
*/
function () {
return this.authWellKnownEndpoints;
},
enumerable: true,
configurable: true
});
Object.defineProperty(ConfigurationProvider.prototype, "onConfigurationChange", {
get: /**
* @return {?}
*/
function () {
return this.onConfigurationChangeInternal.asObservable();
},
enumerable: true,
configurable: true
});
/**
* @param {?} passedOpenIfConfiguration
* @param {?} passedAuthWellKnownEndpoints
* @return {?}
*/
ConfigurationProvider.prototype.setup = /**
* @param {?} passedOpenIfConfiguration
* @param {?} passedAuthWellKnownEndpoints
* @return {?}
*/
function (passedOpenIfConfiguration, passedAuthWellKnownEndpoints) {
this.mergedOpenIdConfiguration = tslib_1.__assign({}, this.mergedOpenIdConfiguration, passedOpenIfConfiguration);
this.setSpecialCases(this.mergedOpenIdConfiguration);
this.authWellKnownEndpoints = tslib_1.__assign({}, passedAuthWellKnownEndpoints);
this.onConfigurationChangeInternal.next(tslib_1.__assign({}, this.mergedOpenIdConfiguration));
};
/**
* @private
* @param {?} currentConfig
* @return {?}
*/
ConfigurationProvider.prototype.setSpecialCases = /**
* @private
* @param {?} currentConfig
* @return {?}
*/
function (currentConfig) {
if (!this.platformProvider.isBrowser) {
currentConfig.start_checksession = false;
currentConfig.silent_renew = false;
}
};
ConfigurationProvider.decorators = [
{ type: Injectable, args: [{ providedIn: 'root' },] }
];
/** @nocollapse */
ConfigurationProvider.ctorParameters = function () { return [
{ type: PlatformProvider }
]; };
/** @nocollapse */ ConfigurationProvider.ngInjectableDef = i0.defineInjectable({ factory: function ConfigurationProvider_Factory() { return new ConfigurationProvider(i0.inject(i1.PlatformProvider)); }, token: ConfigurationProvider, providedIn: "root" });
return ConfigurationProvider;
}());
export { ConfigurationProvider };
if (false) {
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.DEFAULT_CONFIG;
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.INITIAL_AUTHWELLKNOWN;
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.mergedOpenIdConfiguration;
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.authWellKnownEndpoints;
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.onConfigurationChangeInternal;
/**
* @type {?}
* @private
*/
ConfigurationProvider.prototype.platformProvider;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWd1cmF0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hdXRoLW9pZGMtY2xpZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2F1dGgtY29uZmlndXJhdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXZEO0lBMERJLCtCQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhEOUMsbUJBQWMsR0FBZ0M7WUFDbEQsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLEtBQUssRUFBRSxzQkFBc0I7WUFDN0IsUUFBUSxFQUFFLEVBQUU7WUFDWix3QkFBd0IsRUFBRSxvQkFBb0I7WUFDOUMsa0JBQWtCLEVBQUUsS0FBSztZQUN6QixZQUFZLEVBQUUsS0FBSztZQUNuQixnQkFBZ0IsRUFBRSxvQkFBb0I7WUFDdEMsOEJBQThCLEVBQUUsQ0FBQztZQUNqQyxnQkFBZ0IsRUFBRSxHQUFHO1lBQ3JCLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGtCQUFrQixFQUFFLGVBQWU7WUFDbkMsYUFBYSxFQUFFLElBQUk7WUFDbkIscUNBQXFDLEVBQUUsSUFBSTtZQUMzQyxrQ0FBa0MsRUFBRSxLQUFLO1lBQ3pDLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsd0JBQXdCLEVBQUUsS0FBSztZQUMvQixrQkFBa0IsRUFBRSxLQUFLO1lBQ3pCLG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsMENBQTBDLEVBQUUsQ0FBQztZQUM3Qyw2QkFBNkIsRUFBRSxLQUFLO1lBQ3BDLE9BQU8sRUFBRSxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNsRSxDQUFDO1FBRU0sMEJBQXFCLEdBQTJCO1lBQ3BELE1BQU0sRUFBRSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7WUFDWixzQkFBc0IsRUFBRSxFQUFFO1lBQzFCLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGlCQUFpQixFQUFFLEVBQUU7WUFDckIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4QixvQkFBb0IsRUFBRSxFQUFFO1lBQ3hCLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsc0JBQXNCLEVBQUUsRUFBRTtTQUM3QixDQUFDO1FBRU0sOEJBQXlCLEdBQWdDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDN0UsMkJBQXNCLEdBQTJCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUU1RSxrQ0FBNkIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztJQWNsQixDQUFDO0lBWjFELHNCQUFJLHNEQUFtQjs7OztRQUF2QjtZQUNJLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBRUQsc0JBQUkscURBQWtCOzs7O1FBQXRCO1lBQ0ksT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDdkMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx3REFBcUI7Ozs7UUFBekI7WUFDSSxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3RCxDQUFDOzs7T0FBQTs7Ozs7O0lBSUQscUNBQUs7Ozs7O0lBQUwsVUFBTSx5QkFBOEMsRUFBRSw0QkFBb0Q7UUFDdEcsSUFBSSxDQUFDLHlCQUF5Qix3QkFBUSxJQUFJLENBQUMseUJBQXlCLEVBQUsseUJBQXlCLENBQUUsQ0FBQztRQUNyRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxzQkFBc0Isd0JBQVEsNEJBQTRCLENBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxzQkFBTSxJQUFJLENBQUMseUJBQXlCLEVBQUcsQ0FBQztJQUNuRixDQUFDOzs7Ozs7SUFFTywrQ0FBZTs7Ozs7SUFBdkIsVUFBd0IsYUFBa0M7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7WUFDbEMsYUFBYSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUN6QyxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUN0QztJQUNMLENBQUM7O2dCQXhFSixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7O2dCQUZ6QixnQkFBZ0I7OztnQ0FKekI7Q0ErRUMsQUF6RUQsSUF5RUM7U0F4RVkscUJBQXFCOzs7Ozs7SUFDOUIsK0NBeUJFOzs7OztJQUVGLHNEQVVFOzs7OztJQUVGLDBEQUFxRjs7Ozs7SUFDckYsdURBQW9GOzs7OztJQUVwRiw4REFBMkU7Ozs7O0lBYy9ELGlEQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wZW5JZENvbmZpZ3VyYXRpb24sIE9wZW5JZEludGVybmFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9hdXRoLmNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgQXV0aFdlbGxLbm93bkVuZHBvaW50cyB9IGZyb20gJy4uL21vZGVscy9hdXRoLndlbGwta25vd24tZW5kcG9pbnRzJztcbmltcG9ydCB7IFBsYXRmb3JtUHJvdmlkZXIgfSBmcm9tICcuL3BsYXRmb3JtLnByb3ZpZGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uUHJvdmlkZXIge1xuICAgIHByaXZhdGUgREVGQVVMVF9DT05GSUc6IE9wZW5JZEludGVybmFsQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgc3RzU2VydmVyOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgcmVkaXJlY3RfdXJsOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgY2xpZW50X2lkOiAncGxlYXNlX3NldCcsXG4gICAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyxcbiAgICAgICAgc2NvcGU6ICdvcGVuaWQgZW1haWwgcHJvZmlsZScsXG4gICAgICAgIGhkX3BhcmFtOiAnJyxcbiAgICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgc3RhcnRfY2hlY2tzZXNzaW9uOiBmYWxzZSxcbiAgICAgICAgc2lsZW50X3JlbmV3OiBmYWxzZSxcbiAgICAgICAgc2lsZW50X3JlbmV3X3VybDogJ2h0dHBzOi8vcGxlYXNlX3NldCcsXG4gICAgICAgIHNpbGVudF9yZW5ld19vZmZzZXRfaW5fc2Vjb25kczogMCxcbiAgICAgICAgcG9zdF9sb2dpbl9yb3V0ZTogJy8nLFxuICAgICAgICBmb3JiaWRkZW5fcm91dGU6ICcvZm9yYmlkZGVuJyxcbiAgICAgICAgdW5hdXRob3JpemVkX3JvdXRlOiAnL3VuYXV0aG9yaXplZCcsXG4gICAgICAgIGF1dG9fdXNlcmluZm86IHRydWUsXG4gICAgICAgIGF1dG9fY2xlYW5fc3RhdGVfYWZ0ZXJfYXV0aGVudGljYXRpb246IHRydWUsXG4gICAgICAgIHRyaWdnZXJfYXV0aG9yaXphdGlvbl9yZXN1bHRfZXZlbnQ6IGZhbHNlLFxuICAgICAgICBsb2dfY29uc29sZV93YXJuaW5nX2FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgbG9nX2NvbnNvbGVfZGVidWdfYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgaXNzX3ZhbGlkYXRpb25fb2ZmOiBmYWxzZSxcbiAgICAgICAgaGlzdG9yeV9jbGVhbnVwX29mZjogZmFsc2UsXG4gICAgICAgIG1heF9pZF90b2tlbl9pYXRfb2Zmc2V0X2FsbG93ZWRfaW5fc2Vjb25kczogMyxcbiAgICAgICAgZGlzYWJsZV9pYXRfb2Zmc2V0X3ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICBzdG9yYWdlOiB0eXBlb2YgU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgPyBzZXNzaW9uU3RvcmFnZSA6IG51bGwsXG4gICAgfTtcblxuICAgIHByaXZhdGUgSU5JVElBTF9BVVRIV0VMTEtOT1dOOiBBdXRoV2VsbEtub3duRW5kcG9pbnRzID0ge1xuICAgICAgICBpc3N1ZXI6ICcnLFxuICAgICAgICBqd2tzX3VyaTogJycsXG4gICAgICAgIGF1dGhvcml6YXRpb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICB0b2tlbl9lbmRwb2ludDogJycsXG4gICAgICAgIHVzZXJpbmZvX2VuZHBvaW50OiAnJyxcbiAgICAgICAgZW5kX3Nlc3Npb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICBjaGVja19zZXNzaW9uX2lmcmFtZTogJycsXG4gICAgICAgIHJldm9jYXRpb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICBpbnRyb3NwZWN0aW9uX2VuZHBvaW50OiAnJyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBtZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uOiBPcGVuSWRJbnRlcm5hbENvbmZpZ3VyYXRpb24gPSB0aGlzLkRFRkFVTFRfQ09ORklHO1xuICAgIHByaXZhdGUgYXV0aFdlbGxLbm93bkVuZHBvaW50czogQXV0aFdlbGxLbm93bkVuZHBvaW50cyA9IHRoaXMuSU5JVElBTF9BVVRIV0VMTEtOT1dOO1xuXG4gICAgcHJpdmF0ZSBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VJbnRlcm5hbCA9IG5ldyBTdWJqZWN0PE9wZW5JZENvbmZpZ3VyYXRpb24+KCk7XG5cbiAgICBnZXQgb3BlbklEQ29uZmlndXJhdGlvbigpOiBPcGVuSWRJbnRlcm5hbENvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uO1xuICAgIH1cblxuICAgIGdldCB3ZWxsS25vd25FbmRwb2ludHMoKTogQXV0aFdlbGxLbm93bkVuZHBvaW50cyB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhXZWxsS25vd25FbmRwb2ludHM7XG4gICAgfVxuXG4gICAgZ2V0IG9uQ29uZmlndXJhdGlvbkNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlSW50ZXJuYWwuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwbGF0Zm9ybVByb3ZpZGVyOiBQbGF0Zm9ybVByb3ZpZGVyKSB7fVxuXG4gICAgc2V0dXAocGFzc2VkT3BlbklmQ29uZmlndXJhdGlvbjogT3BlbklkQ29uZmlndXJhdGlvbiwgcGFzc2VkQXV0aFdlbGxLbm93bkVuZHBvaW50czogQXV0aFdlbGxLbm93bkVuZHBvaW50cykge1xuICAgICAgICB0aGlzLm1lcmdlZE9wZW5JZENvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVyZ2VkT3BlbklkQ29uZmlndXJhdGlvbiwgLi4ucGFzc2VkT3BlbklmQ29uZmlndXJhdGlvbiB9O1xuICAgICAgICB0aGlzLnNldFNwZWNpYWxDYXNlcyh0aGlzLm1lcmdlZE9wZW5JZENvbmZpZ3VyYXRpb24pO1xuICAgICAgICB0aGlzLmF1dGhXZWxsS25vd25FbmRwb2ludHMgPSB7IC4uLnBhc3NlZEF1dGhXZWxsS25vd25FbmRwb2ludHMgfTtcbiAgICAgICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VJbnRlcm5hbC5uZXh0KHsgLi4udGhpcy5tZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3BlY2lhbENhc2VzKGN1cnJlbnRDb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtUHJvdmlkZXIuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICBjdXJyZW50Q29uZmlnLnN0YXJ0X2NoZWNrc2Vzc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgY3VycmVudENvbmZpZy5zaWxlbnRfcmVuZXcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==