UNPKG

@spartacus/core

Version:

Spartacus - the core framework

74 lines 9.97 kB
import { CommonModule } from '@angular/common'; import { APP_INITIALIZER, NgModule } from '@angular/core'; import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc'; import { switchMap } from 'rxjs/operators'; import { ConfigInitializerService } from '../../config/config-initializer/config-initializer.service'; import { provideDefaultConfig } from '../../config/config-providers'; import { provideConfigValidator } from '../../config/config-validator/config-validator'; import { baseUrlConfigValidator } from './config/base-url-config-validator'; import { defaultAuthConfig } from './config/default-auth-config'; import { UserAuthEventModule } from './events/user-auth-event.module'; import { AuthService } from './facade/auth.service'; import { interceptors } from './http-interceptors/index'; import { AuthStatePersistenceService } from './services/auth-state-persistence.service'; import { AuthStorageService } from './services/auth-storage.service'; import * as i0 from "@angular/core"; import * as i1 from "angular-oauth2-oidc"; /** * Initialize the check for `token` or `code` in the url returned from the OAuth server. */ export function checkOAuthParamsInUrl(authService, configInit) { const result = () => configInit .getStable() .pipe(switchMap(() => // Wait for stable config is used, because with auth redirect would kick so quickly that the page would not be loaded correctly authService.checkOAuthParamsInUrl())) .toPromise(); return result; } export function authStatePersistenceFactory(authStatePersistenceService) { const result = () => authStatePersistenceService.initSync(); return result; } /** * Authentication module for a user. Handlers requests for logged in users, * provides authorization services and storage for tokens. */ export class UserAuthModule { static forRoot() { return { ngModule: UserAuthModule, providers: [ provideDefaultConfig(defaultAuthConfig), provideConfigValidator(baseUrlConfigValidator), ...interceptors, { provide: OAuthStorage, useExisting: AuthStorageService, }, { provide: APP_INITIALIZER, useFactory: authStatePersistenceFactory, deps: [AuthStatePersistenceService], multi: true, }, { provide: APP_INITIALIZER, useFactory: checkOAuthParamsInUrl, deps: [AuthService, ConfigInitializerService], multi: true, }, ], }; } } UserAuthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); UserAuthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthModule, imports: [CommonModule, i1.OAuthModule, UserAuthEventModule] }); UserAuthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthModule, imports: [[CommonModule, OAuthModule.forRoot(), UserAuthEventModule]] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthModule, decorators: [{ type: NgModule, args: [{ imports: [CommonModule, OAuthModule.forRoot(), UserAuthEventModule], }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdXRoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2F1dGgvdXNlci1hdXRoL3VzZXItYXV0aC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFFckU7O0dBRUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFdBQXdCLEVBQ3hCLFVBQW9DO0lBRXBDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUNsQixVQUFVO1NBQ1AsU0FBUyxFQUFFO1NBQ1gsSUFBSSxDQUNILFNBQVMsQ0FBQyxHQUFHLEVBQUU7SUFDYiwrSEFBK0g7SUFDL0gsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQ3BDLENBQ0Y7U0FDQSxTQUFTLEVBQUUsQ0FBQztJQUVqQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUN6QywyQkFBd0Q7SUFFeEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVEOzs7R0FHRztBQUlILE1BQU0sT0FBTyxjQUFjO0lBQ3pCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDVCxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdkMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUM7Z0JBQzlDLEdBQUcsWUFBWTtnQkFDZjtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsV0FBVyxFQUFFLGtCQUFrQjtpQkFDaEM7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSwyQkFBMkI7b0JBQ3ZDLElBQUksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUNuQyxLQUFLLEVBQUUsSUFBSTtpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLHFCQUFxQjtvQkFDakMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLHdCQUF3QixDQUFDO29CQUM3QyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzJHQTFCVSxjQUFjOzRHQUFkLGNBQWMsWUFGZixZQUFZLGtCQUF5QixtQkFBbUI7NEdBRXZELGNBQWMsWUFGaEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLG1CQUFtQixDQUFDOzJGQUV4RCxjQUFjO2tCQUgxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3BFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlLCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbmZpZ0luaXRpYWxpemVyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9jb25maWctaW5pdGlhbGl6ZXIvY29uZmlnLWluaXRpYWxpemVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgcHJvdmlkZURlZmF1bHRDb25maWcgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vY29uZmlnL2NvbmZpZy12YWxpZGF0b3IvY29uZmlnLXZhbGlkYXRvcic7XG5pbXBvcnQgeyBiYXNlVXJsQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi9jb25maWcvYmFzZS11cmwtY29uZmlnLXZhbGlkYXRvcic7XG5pbXBvcnQgeyBkZWZhdWx0QXV0aENvbmZpZyB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtYXV0aC1jb25maWcnO1xuaW1wb3J0IHsgVXNlckF1dGhFdmVudE1vZHVsZSB9IGZyb20gJy4vZXZlbnRzL3VzZXItYXV0aC1ldmVudC5tb2R1bGUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2ZhY2FkZS9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW50ZXJjZXB0b3JzIH0gZnJvbSAnLi9odHRwLWludGVyY2VwdG9ycy9pbmRleCc7XG5pbXBvcnQgeyBBdXRoU3RhdGVQZXJzaXN0ZW5jZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtc3RhdGUtcGVyc2lzdGVuY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2F1dGgtc3RvcmFnZS5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbml0aWFsaXplIHRoZSBjaGVjayBmb3IgYHRva2VuYCBvciBgY29kZWAgaW4gdGhlIHVybCByZXR1cm5lZCBmcm9tIHRoZSBPQXV0aCBzZXJ2ZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja09BdXRoUGFyYW1zSW5VcmwoXG4gIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgY29uZmlnSW5pdDogQ29uZmlnSW5pdGlhbGl6ZXJTZXJ2aWNlXG4pOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgcmVzdWx0ID0gKCkgPT5cbiAgICBjb25maWdJbml0XG4gICAgICAuZ2V0U3RhYmxlKClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAvLyBXYWl0IGZvciBzdGFibGUgY29uZmlnIGlzIHVzZWQsIGJlY2F1c2Ugd2l0aCBhdXRoIHJlZGlyZWN0IHdvdWxkIGtpY2sgc28gcXVpY2tseSB0aGF0IHRoZSBwYWdlIHdvdWxkIG5vdCBiZSBsb2FkZWQgY29ycmVjdGx5XG4gICAgICAgICAgYXV0aFNlcnZpY2UuY2hlY2tPQXV0aFBhcmFtc0luVXJsKClcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdXRoU3RhdGVQZXJzaXN0ZW5jZUZhY3RvcnkoXG4gIGF1dGhTdGF0ZVBlcnNpc3RlbmNlU2VydmljZTogQXV0aFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlXG4pIHtcbiAgY29uc3QgcmVzdWx0ID0gKCkgPT4gYXV0aFN0YXRlUGVyc2lzdGVuY2VTZXJ2aWNlLmluaXRTeW5jKCk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQXV0aGVudGljYXRpb24gbW9kdWxlIGZvciBhIHVzZXIuIEhhbmRsZXJzIHJlcXVlc3RzIGZvciBsb2dnZWQgaW4gdXNlcnMsXG4gKiBwcm92aWRlcyBhdXRob3JpemF0aW9uIHNlcnZpY2VzIGFuZCBzdG9yYWdlIGZvciB0b2tlbnMuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE9BdXRoTW9kdWxlLmZvclJvb3QoKSwgVXNlckF1dGhFdmVudE1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJBdXRoTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxVc2VyQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVXNlckF1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZURlZmF1bHRDb25maWcoZGVmYXVsdEF1dGhDb25maWcpLFxuICAgICAgICBwcm92aWRlQ29uZmlnVmFsaWRhdG9yKGJhc2VVcmxDb25maWdWYWxpZGF0b3IpLFxuICAgICAgICAuLi5pbnRlcmNlcHRvcnMsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBPQXV0aFN0b3JhZ2UsXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IEF1dGhTdG9yYWdlU2VydmljZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICB1c2VGYWN0b3J5OiBhdXRoU3RhdGVQZXJzaXN0ZW5jZUZhY3RvcnksXG4gICAgICAgICAgZGVwczogW0F1dGhTdGF0ZVBlcnNpc3RlbmNlU2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgdXNlRmFjdG9yeTogY2hlY2tPQXV0aFBhcmFtc0luVXJsLFxuICAgICAgICAgIGRlcHM6IFtBdXRoU2VydmljZSwgQ29uZmlnSW5pdGlhbGl6ZXJTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19