angular-auth-oidc-client
Version:
Angular Lib for OpenID Connect & OAuth2
44 lines • 7.43 kB
JavaScript
import { Injectable, inject } from '@angular/core';
import { Router } from '@angular/router';
import { throwError } from 'rxjs';
import { catchError, tap } from 'rxjs/operators';
import { FlowsDataService } from '../flows/flows-data.service';
import { FlowsService } from '../flows/flows.service';
import { IntervalService } from './interval.service';
import * as i0 from "@angular/core";
export class ImplicitFlowCallbackService {
constructor() {
this.flowsService = inject(FlowsService);
this.router = inject(Router);
this.flowsDataService = inject(FlowsDataService);
this.intervalService = inject(IntervalService);
}
authenticatedImplicitFlowCallback(config, allConfigs, hash) {
const isRenewProcess = this.flowsDataService.isSilentRenewRunning(config);
const triggerAuthorizationResultEvent = Boolean(config.triggerAuthorizationResultEvent);
const postLoginRoute = config.postLoginRoute ?? '';
const unauthorizedRoute = config.unauthorizedRoute ?? '';
return this.flowsService
.processImplicitFlowCallback(config, allConfigs, hash)
.pipe(tap((callbackContext) => {
if (!triggerAuthorizationResultEvent &&
!callbackContext.isRenewProcess) {
this.router.navigateByUrl(postLoginRoute);
}
}), catchError((error) => {
this.flowsDataService.resetSilentRenewRunning(config);
this.intervalService.stopPeriodicTokenCheck();
if (!triggerAuthorizationResultEvent && !isRenewProcess) {
this.router.navigateByUrl(unauthorizedRoute);
}
return throwError(() => new Error(error));
}));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImplicitFlowCallbackService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImplicitFlowCallbackService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ImplicitFlowCallbackService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wbGljaXQtZmxvdy1jYWxsYmFjay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdXRoLW9pZGMtY2xpZW50L3NyYy9saWIvY2FsbGJhY2svaW1wbGljaXQtZmxvdy1jYWxsYmFjay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHckQsTUFBTSxPQUFPLDJCQUEyQjtJQUR4QztRQUVtQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVwQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhCLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBb0M1RDtJQWxDQyxpQ0FBaUMsQ0FDL0IsTUFBMkIsRUFDM0IsVUFBaUMsRUFDakMsSUFBYTtRQUViLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRSxNQUFNLCtCQUErQixHQUFHLE9BQU8sQ0FDN0MsTUFBTSxDQUFDLCtCQUErQixDQUN2QyxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDO1FBRXpELE9BQU8sSUFBSSxDQUFDLFlBQVk7YUFDckIsMkJBQTJCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUM7YUFDckQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3RCLElBQ0UsQ0FBQywrQkFBK0I7Z0JBQ2hDLENBQUMsZUFBZSxDQUFDLGNBQWMsRUFDL0IsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsK0JBQStCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzs4R0ExQ1UsMkJBQTJCO2tIQUEzQiwyQkFBMkIsY0FEZCxNQUFNOzsyRkFDbkIsMkJBQTJCO2tCQUR2QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9wZW5JZENvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb25maWcvb3BlbmlkLWNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgQ2FsbGJhY2tDb250ZXh0IH0gZnJvbSAnLi4vZmxvd3MvY2FsbGJhY2stY29udGV4dCc7XG5pbXBvcnQgeyBGbG93c0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZmxvd3MvZmxvd3MtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IEZsb3dzU2VydmljZSB9IGZyb20gJy4uL2Zsb3dzL2Zsb3dzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW50ZXJ2YWxTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcnZhbC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbXBsaWNpdEZsb3dDYWxsYmFja1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGZsb3dzU2VydmljZSA9IGluamVjdChGbG93c1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmbG93c0RhdGFTZXJ2aWNlID0gaW5qZWN0KEZsb3dzRGF0YVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJ2YWxTZXJ2aWNlID0gaW5qZWN0KEludGVydmFsU2VydmljZSk7XG5cbiAgYXV0aGVudGljYXRlZEltcGxpY2l0Rmxvd0NhbGxiYWNrKFxuICAgIGNvbmZpZzogT3BlbklkQ29uZmlndXJhdGlvbixcbiAgICBhbGxDb25maWdzOiBPcGVuSWRDb25maWd1cmF0aW9uW10sXG4gICAgaGFzaD86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPENhbGxiYWNrQ29udGV4dD4ge1xuICAgIGNvbnN0IGlzUmVuZXdQcm9jZXNzID0gdGhpcy5mbG93c0RhdGFTZXJ2aWNlLmlzU2lsZW50UmVuZXdSdW5uaW5nKGNvbmZpZyk7XG4gICAgY29uc3QgdHJpZ2dlckF1dGhvcml6YXRpb25SZXN1bHRFdmVudCA9IEJvb2xlYW4oXG4gICAgICBjb25maWcudHJpZ2dlckF1dGhvcml6YXRpb25SZXN1bHRFdmVudFxuICAgICk7XG4gICAgY29uc3QgcG9zdExvZ2luUm91dGUgPSBjb25maWcucG9zdExvZ2luUm91dGUgPz8gJyc7XG4gICAgY29uc3QgdW5hdXRob3JpemVkUm91dGUgPSBjb25maWcudW5hdXRob3JpemVkUm91dGUgPz8gJyc7XG5cbiAgICByZXR1cm4gdGhpcy5mbG93c1NlcnZpY2VcbiAgICAgIC5wcm9jZXNzSW1wbGljaXRGbG93Q2FsbGJhY2soY29uZmlnLCBhbGxDb25maWdzLCBoYXNoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoY2FsbGJhY2tDb250ZXh0KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRyaWdnZXJBdXRob3JpemF0aW9uUmVzdWx0RXZlbnQgJiZcbiAgICAgICAgICAgICFjYWxsYmFja0NvbnRleHQuaXNSZW5ld1Byb2Nlc3NcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwocG9zdExvZ2luUm91dGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5mbG93c0RhdGFTZXJ2aWNlLnJlc2V0U2lsZW50UmVuZXdSdW5uaW5nKGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5pbnRlcnZhbFNlcnZpY2Uuc3RvcFBlcmlvZGljVG9rZW5DaGVjaygpO1xuICAgICAgICAgIGlmICghdHJpZ2dlckF1dGhvcml6YXRpb25SZXN1bHRFdmVudCAmJiAhaXNSZW5ld1Byb2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodW5hdXRob3JpemVkUm91dGUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvcikpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19