dynamic-display-shared
Version:
A library for dynamic view
56 lines • 8.6 kB
JavaScript
import { Inject, Injectable } from '@angular/core';
import { OAuthService, NullValidationHandler, OAuthErrorEvent } from 'angular-oauth2-oidc';
import { AuthConfigModel } from './auth.config.model';
import * as i0 from "@angular/core";
import * as i1 from "angular-oauth2-oidc";
import * as i2 from "./auth.config.model";
export const initializerFactory = (idInitializer) => idInitializer.init.bind(idInitializer);
export class IdentityInitializer {
constructor(oauthService, authConfig) {
this.oauthService = oauthService;
this.authConfig = authConfig;
}
init() {
return this.configure();
}
async configure() {
this.oauthService.configure(this.authConfig.authConfig);
// this.oauthService.tokenValidationHandler = new JwksValidationHandler();
this.oauthService.tokenValidationHandler = new NullValidationHandler();
// Load Discovery Document and then try to login the user
// this.oauthService.loadDiscoveryDocumentAndTryLogin();
//
await this.oauthService.loadDiscoveryDocument(this.authConfig.DiscoveryDocumentConfig.url);
this.oauthService.events.subscribe(e => {
if (e instanceof OAuthErrorEvent) {
const parm = e.params;
if (parm) {
if (parm.error === 'access_denied' && parm.error_description.includes('AADB2C90118')) {
// redirect to forgot password flow
const redir = this.authConfig.passwordResetUrl;
window.location.href = this.authConfig.passwordResetUrl;
}
else if (parm.error === 'access_denied' && parm.error_description.includes('AADB2C90091')) {
// user has cancelled out of password reset
this.oauthService.initLoginFlow();
}
}
}
else if (e.type == 'token_expires') {
const encodedUri = encodeURIComponent(document.URL);
this.oauthService.initLoginFlow(encodedUri);
}
});
// this.oauthService.setupAutomaticSilentRefresh();
return this.oauthService.tryLoginImplicitFlow();
}
}
IdentityInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdentityInitializer, deps: [{ token: i1.OAuthService }, { token: 'authConfig' }], target: i0.ɵɵFactoryTarget.Injectable });
IdentityInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdentityInitializer });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: IdentityInitializer, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: i2.AuthConfigModel, decorators: [{
type: Inject,
args: ['authConfig']
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9keW5hbWljLWRpc3BsYXktc2hhcmVkL3NyYy9saWIvc2hhcmVkL2F1dGgvaWRlbnRpdHktaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRixPQUFPLEVBQUUsZUFBZSxFQUF5QixNQUFNLHFCQUFxQixDQUFDOzs7O0FBRzdFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUVMLENBQUMsYUFBa0MsRUFBRSxFQUFFLENBQzdELGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsWUFDVSxZQUEwQixFQUNKLFVBQTJCO1FBRGpELGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ0osZUFBVSxHQUFWLFVBQVUsQ0FBaUI7SUFDdkQsQ0FBQztJQUVFLElBQUk7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ08sS0FBSyxDQUFDLFNBQVM7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4RCwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDdkUseURBQXlEO1FBQ3pELHlEQUF5RDtRQUV6RCxFQUFFO1FBQ0YsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxZQUFZLGVBQWUsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQStCLENBQUM7Z0JBQy9DLElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTt3QkFDcEYsbUNBQW1DO3dCQUNuQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO3dCQUMvQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDO3FCQUN6RDt5QkFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssZUFBZSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7d0JBQzNGLDJDQUEyQzt3QkFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztxQkFDbkM7aUJBQ0Y7YUFDRjtpQkFDSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksZUFBZSxFQUFFO2dCQUNsQyxNQUFNLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxtREFBbUQ7UUFDbkQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDbEQsQ0FBQzs7Z0hBeENVLG1CQUFtQiw4Q0FHcEIsWUFBWTtvSEFIWCxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBSU4sTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSwgTnVsbFZhbGlkYXRpb25IYW5kbGVyLCBPQXV0aEVycm9yRXZlbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuaW1wb3J0IHsgQXV0aENvbmZpZ01vZGVsLCBPQXV0aEVycm9yRXZlbnRQYXJhbXMgfSBmcm9tICcuL2F1dGguY29uZmlnLm1vZGVsJztcclxuXHJcblxyXG5leHBvcnQgY29uc3QgaW5pdGlhbGl6ZXJGYWN0b3J5OiAoXHJcbiAgaWRJbml0aWFsaXplcjogSWRlbnRpdHlJbml0aWFsaXplclxyXG4pID0+ICgpID0+IFByb21pc2U8YW55PiA9IChpZEluaXRpYWxpemVyOiBJZGVudGl0eUluaXRpYWxpemVyKSA9PlxyXG4gICAgaWRJbml0aWFsaXplci5pbml0LmJpbmQoaWRJbml0aWFsaXplcik7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJZGVudGl0eUluaXRpYWxpemVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb2F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdhdXRoQ29uZmlnJykgcHJpdmF0ZSBhdXRoQ29uZmlnOiBBdXRoQ29uZmlnTW9kZWxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgaW5pdCgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgYXN5bmMgY29uZmlndXJlKCk6IFByb21pc2U8YW55PiB7XHJcbiAgICB0aGlzLm9hdXRoU2VydmljZS5jb25maWd1cmUodGhpcy5hdXRoQ29uZmlnLmF1dGhDb25maWcpO1xyXG4gICAgLy8gdGhpcy5vYXV0aFNlcnZpY2UudG9rZW5WYWxpZGF0aW9uSGFuZGxlciA9IG5ldyBKd2tzVmFsaWRhdGlvbkhhbmRsZXIoKTtcclxuICAgIHRoaXMub2F1dGhTZXJ2aWNlLnRva2VuVmFsaWRhdGlvbkhhbmRsZXIgPSBuZXcgTnVsbFZhbGlkYXRpb25IYW5kbGVyKCk7XHJcbiAgICAvLyBMb2FkIERpc2NvdmVyeSBEb2N1bWVudCBhbmQgdGhlbiB0cnkgdG8gbG9naW4gdGhlIHVzZXJcclxuICAgIC8vICB0aGlzLm9hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpO1xyXG5cclxuICAgIC8vXHJcbiAgICBhd2FpdCB0aGlzLm9hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnQodGhpcy5hdXRoQ29uZmlnLkRpc2NvdmVyeURvY3VtZW50Q29uZmlnLnVybCk7XHJcblxyXG4gICAgdGhpcy5vYXV0aFNlcnZpY2UuZXZlbnRzLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBPQXV0aEVycm9yRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBwYXJtID0gZS5wYXJhbXMgYXMgT0F1dGhFcnJvckV2ZW50UGFyYW1zO1xyXG4gICAgICAgIGlmIChwYXJtKSB7XHJcbiAgICAgICAgICBpZiAocGFybS5lcnJvciA9PT0gJ2FjY2Vzc19kZW5pZWQnICYmIHBhcm0uZXJyb3JfZGVzY3JpcHRpb24uaW5jbHVkZXMoJ0FBREIyQzkwMTE4JykpIHtcclxuICAgICAgICAgICAgLy8gcmVkaXJlY3QgdG8gZm9yZ290IHBhc3N3b3JkIGZsb3dcclxuICAgICAgICAgICAgY29uc3QgcmVkaXIgPSB0aGlzLmF1dGhDb25maWcucGFzc3dvcmRSZXNldFVybDtcclxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmF1dGhDb25maWcucGFzc3dvcmRSZXNldFVybDtcclxuICAgICAgICAgIH0gZWxzZSBpZiAocGFybS5lcnJvciA9PT0gJ2FjY2Vzc19kZW5pZWQnICYmIHBhcm0uZXJyb3JfZGVzY3JpcHRpb24uaW5jbHVkZXMoJ0FBREIyQzkwMDkxJykpIHtcclxuICAgICAgICAgICAgLy8gdXNlciBoYXMgY2FuY2VsbGVkIG91dCBvZiBwYXNzd29yZCByZXNldFxyXG4gICAgICAgICAgICB0aGlzLm9hdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGUudHlwZSA9PSAndG9rZW5fZXhwaXJlcycpIHtcclxuICAgICAgICBjb25zdCBlbmNvZGVkVXJpID0gZW5jb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCk7XHJcbiAgICAgICAgdGhpcy5vYXV0aFNlcnZpY2UuaW5pdExvZ2luRmxvdyhlbmNvZGVkVXJpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLm9hdXRoU2VydmljZS5zZXR1cEF1dG9tYXRpY1NpbGVudFJlZnJlc2goKTtcclxuICAgIHJldHVybiB0aGlzLm9hdXRoU2VydmljZS50cnlMb2dpbkltcGxpY2l0RmxvdygpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==