angular-auth-oidc-client
Version:
Angular Lib for OpenID Connect & OAuth2
58 lines • 9.89 kB
JavaScript
import { Injectable, inject } from '@angular/core';
import { of } from 'rxjs';
import { StoragePersistenceService } from '../storage/storage-persistence.service';
import { ParLoginService } from './par/par-login.service';
import { PopUpLoginService } from './popup/popup-login.service';
import { PopUpService } from './popup/popup.service';
import { StandardLoginService } from './standard/standard-login.service';
import * as i0 from "@angular/core";
export class LoginService {
constructor() {
this.parLoginService = inject(ParLoginService);
this.popUpLoginService = inject(PopUpLoginService);
this.standardLoginService = inject(StandardLoginService);
this.storagePersistenceService = inject(StoragePersistenceService);
this.popupService = inject(PopUpService);
}
login(configuration, authOptions) {
if (!configuration) {
throw new Error('Please provide a configuration before setting up the module');
}
const { usePushedAuthorisationRequests } = configuration;
if (authOptions?.customParams) {
this.storagePersistenceService.write('storageCustomParamsAuthRequest', authOptions.customParams, configuration);
}
if (usePushedAuthorisationRequests) {
return this.parLoginService.loginPar(configuration, authOptions);
}
else {
return this.standardLoginService.loginStandard(configuration, authOptions);
}
}
loginWithPopUp(configuration, allConfigs, authOptions, popupOptions) {
if (!configuration) {
throw new Error('Please provide a configuration before setting up the module');
}
const isAlreadyInPopUp = this.popupService.isCurrentlyInPopup(configuration);
if (isAlreadyInPopUp) {
return of({
errorMessage: 'There is already a popup open.',
});
}
const { usePushedAuthorisationRequests } = configuration;
if (authOptions?.customParams) {
this.storagePersistenceService.write('storageCustomParamsAuthRequest', authOptions.customParams, configuration);
}
if (usePushedAuthorisationRequests) {
return this.parLoginService.loginWithPopUpPar(configuration, allConfigs, authOptions, popupOptions);
}
return this.popUpLoginService.loginWithPopUpStandard(configuration, allConfigs, authOptions, popupOptions);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoginService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoginService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoginService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC9zcmMvbGliL2xvZ2luL2xvZ2luLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUd6RSxNQUFNLE9BQU8sWUFBWTtJQUR6QjtRQUVtQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUUxQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5Qyx5QkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVwRCw4QkFBeUIsR0FBRyxNQUFNLENBQ2pELHlCQUF5QixDQUMxQixDQUFDO1FBRWUsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0ErRXREO0lBN0VDLEtBQUssQ0FDSCxhQUF5QyxFQUN6QyxXQUF5QjtRQUV6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FDYiw2REFBNkQsQ0FDOUQsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLEVBQUUsOEJBQThCLEVBQUUsR0FBRyxhQUFhLENBQUM7UUFFekQsSUFBSSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FDbEMsZ0NBQWdDLEVBQ2hDLFdBQVcsQ0FBQyxZQUFZLEVBQ3hCLGFBQWEsQ0FDZCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksOEJBQThCLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FDNUMsYUFBYSxFQUNiLFdBQVcsQ0FDWixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQ1osYUFBeUMsRUFDekMsVUFBaUMsRUFDakMsV0FBeUIsRUFDekIsWUFBMkI7UUFFM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQ2IsNkRBQTZELENBQzlELENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV0RCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsT0FBTyxFQUFFLENBQUM7Z0JBQ1IsWUFBWSxFQUFFLGdDQUFnQzthQUM5QixDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE1BQU0sRUFBRSw4QkFBOEIsRUFBRSxHQUFHLGFBQWEsQ0FBQztRQUV6RCxJQUFJLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUNsQyxnQ0FBZ0MsRUFDaEMsV0FBVyxDQUFDLFlBQVksRUFDeEIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSw4QkFBOEIsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FDM0MsYUFBYSxFQUNiLFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxDQUNiLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsc0JBQXNCLENBQ2xELGFBQWEsRUFDYixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksQ0FDYixDQUFDO0lBQ0osQ0FBQzs4R0F6RlUsWUFBWTtrSEFBWixZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuLi9hdXRoLW9wdGlvbnMnO1xuaW1wb3J0IHsgT3BlbklkQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2NvbmZpZy9vcGVuaWQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTdG9yYWdlUGVyc2lzdGVuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9zdG9yYWdlLXBlcnNpc3RlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5SZXNwb25zZSB9IGZyb20gJy4vbG9naW4tcmVzcG9uc2UnO1xuaW1wb3J0IHsgUGFyTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi9wYXIvcGFyLWxvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9wVXBMb2dpblNlcnZpY2UgfSBmcm9tICcuL3BvcHVwL3BvcHVwLWxvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9wdXBPcHRpb25zIH0gZnJvbSAnLi9wb3B1cC9wb3B1cC1vcHRpb25zJztcbmltcG9ydCB7IFBvcFVwU2VydmljZSB9IGZyb20gJy4vcG9wdXAvcG9wdXAuc2VydmljZSc7XG5pbXBvcnQgeyBTdGFuZGFyZExvZ2luU2VydmljZSB9IGZyb20gJy4vc3RhbmRhcmQvc3RhbmRhcmQtbG9naW4uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9naW5TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJMb2dpblNlcnZpY2UgPSBpbmplY3QoUGFyTG9naW5TZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBvcFVwTG9naW5TZXJ2aWNlID0gaW5qZWN0KFBvcFVwTG9naW5TZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0YW5kYXJkTG9naW5TZXJ2aWNlID0gaW5qZWN0KFN0YW5kYXJkTG9naW5TZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VQZXJzaXN0ZW5jZVNlcnZpY2UgPSBpbmplY3QoXG4gICAgU3RvcmFnZVBlcnNpc3RlbmNlU2VydmljZVxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KFBvcFVwU2VydmljZSk7XG5cbiAgbG9naW4oXG4gICAgY29uZmlndXJhdGlvbjogT3BlbklkQ29uZmlndXJhdGlvbiB8IG51bGwsXG4gICAgYXV0aE9wdGlvbnM/OiBBdXRoT3B0aW9uc1xuICApOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpZ3VyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1BsZWFzZSBwcm92aWRlIGEgY29uZmlndXJhdGlvbiBiZWZvcmUgc2V0dGluZyB1cCB0aGUgbW9kdWxlJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IHVzZVB1c2hlZEF1dGhvcmlzYXRpb25SZXF1ZXN0cyB9ID0gY29uZmlndXJhdGlvbjtcblxuICAgIGlmIChhdXRoT3B0aW9ucz8uY3VzdG9tUGFyYW1zKSB7XG4gICAgICB0aGlzLnN0b3JhZ2VQZXJzaXN0ZW5jZVNlcnZpY2Uud3JpdGUoXG4gICAgICAgICdzdG9yYWdlQ3VzdG9tUGFyYW1zQXV0aFJlcXVlc3QnLFxuICAgICAgICBhdXRoT3B0aW9ucy5jdXN0b21QYXJhbXMsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHVzZVB1c2hlZEF1dGhvcmlzYXRpb25SZXF1ZXN0cykge1xuICAgICAgcmV0dXJuIHRoaXMucGFyTG9naW5TZXJ2aWNlLmxvZ2luUGFyKGNvbmZpZ3VyYXRpb24sIGF1dGhPcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhbmRhcmRMb2dpblNlcnZpY2UubG9naW5TdGFuZGFyZChcbiAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgYXV0aE9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbG9naW5XaXRoUG9wVXAoXG4gICAgY29uZmlndXJhdGlvbjogT3BlbklkQ29uZmlndXJhdGlvbiB8IG51bGwsXG4gICAgYWxsQ29uZmlnczogT3BlbklkQ29uZmlndXJhdGlvbltdLFxuICAgIGF1dGhPcHRpb25zPzogQXV0aE9wdGlvbnMsXG4gICAgcG9wdXBPcHRpb25zPzogUG9wdXBPcHRpb25zXG4gICk6IE9ic2VydmFibGU8TG9naW5SZXNwb25zZT4ge1xuICAgIGlmICghY29uZmlndXJhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUGxlYXNlIHByb3ZpZGUgYSBjb25maWd1cmF0aW9uIGJlZm9yZSBzZXR0aW5nIHVwIHRoZSBtb2R1bGUnXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGlzQWxyZWFkeUluUG9wVXAgPVxuICAgICAgdGhpcy5wb3B1cFNlcnZpY2UuaXNDdXJyZW50bHlJblBvcHVwKGNvbmZpZ3VyYXRpb24pO1xuXG4gICAgaWYgKGlzQWxyZWFkeUluUG9wVXApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIGVycm9yTWVzc2FnZTogJ1RoZXJlIGlzIGFscmVhZHkgYSBwb3B1cCBvcGVuLicsXG4gICAgICB9IGFzIExvZ2luUmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgdXNlUHVzaGVkQXV0aG9yaXNhdGlvblJlcXVlc3RzIH0gPSBjb25maWd1cmF0aW9uO1xuXG4gICAgaWYgKGF1dGhPcHRpb25zPy5jdXN0b21QYXJhbXMpIHtcbiAgICAgIHRoaXMuc3RvcmFnZVBlcnNpc3RlbmNlU2VydmljZS53cml0ZShcbiAgICAgICAgJ3N0b3JhZ2VDdXN0b21QYXJhbXNBdXRoUmVxdWVzdCcsXG4gICAgICAgIGF1dGhPcHRpb25zLmN1c3RvbVBhcmFtcyxcbiAgICAgICAgY29uZmlndXJhdGlvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodXNlUHVzaGVkQXV0aG9yaXNhdGlvblJlcXVlc3RzKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYXJMb2dpblNlcnZpY2UubG9naW5XaXRoUG9wVXBQYXIoXG4gICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGFsbENvbmZpZ3MsXG4gICAgICAgIGF1dGhPcHRpb25zLFxuICAgICAgICBwb3B1cE9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucG9wVXBMb2dpblNlcnZpY2UubG9naW5XaXRoUG9wVXBTdGFuZGFyZChcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICBhbGxDb25maWdzLFxuICAgICAgYXV0aE9wdGlvbnMsXG4gICAgICBwb3B1cE9wdGlvbnNcbiAgICApO1xuICB9XG59XG4iXX0=