UNPKG

angular-auth-oidc-client

Version:
50 lines 8.06 kB
import { Injectable, inject } from '@angular/core'; import { of, throwError } from 'rxjs'; import { AuthStateService } from '../../auth-state/auth-state.service'; import { LoggerService } from '../../logging/logger.service'; import { TokenValidationService } from '../../validation/token-validation.service'; import { FlowsDataService } from '../flows-data.service'; import * as i0 from "@angular/core"; export class RefreshSessionCallbackHandlerService { constructor() { this.loggerService = inject(LoggerService); this.authStateService = inject(AuthStateService); this.flowsDataService = inject(FlowsDataService); } // STEP 1 Refresh session refreshSessionWithRefreshTokens(config) { const stateData = this.flowsDataService.getExistingOrCreateAuthStateControl(config); this.loggerService.logDebug(config, 'RefreshSession created. Adding myautostate: ' + stateData); const refreshToken = this.authStateService.getRefreshToken(config); const idToken = this.authStateService.getIdToken(config); if (refreshToken) { const callbackContext = { code: '', refreshToken, state: stateData, sessionState: null, authResult: null, isRenewProcess: true, jwtKeys: null, validationResult: null, existingIdToken: idToken, }; this.loggerService.logDebug(config, 'found refresh code, obtaining new credentials with refresh code'); // Nonce is not used with refresh tokens; but Key cloak may send it anyway this.flowsDataService.setNonce(TokenValidationService.refreshTokenNoncePlaceholder, config); return of(callbackContext); } else { const errorMessage = 'no refresh token found, please login'; this.loggerService.logError(config, errorMessage); return throwError(() => new Error(errorMessage)); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RefreshSessionCallbackHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RefreshSessionCallbackHandlerService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RefreshSessionCallbackHandlerService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC1zZXNzaW9uLWNhbGxiYWNrLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC9zcmMvbGliL2Zsb3dzL2NhbGxiYWNrLWhhbmRsaW5nL3JlZnJlc2gtc2Vzc2lvbi1jYWxsYmFjay1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUd6RCxNQUFNLE9BQU8sb0NBQW9DO0lBRGpEO1FBRW1CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTVDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBZ0Q5RDtJQTlDQyx5QkFBeUI7SUFDekIsK0JBQStCLENBQzdCLE1BQTJCO1FBRTNCLE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FDekIsTUFBTSxFQUNOLDhDQUE4QyxHQUFHLFNBQVMsQ0FDM0QsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6RCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sZUFBZSxHQUFvQjtnQkFDdkMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsWUFBWTtnQkFDWixLQUFLLEVBQUUsU0FBUztnQkFDaEIsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixjQUFjLEVBQUUsSUFBSTtnQkFDcEIsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsZ0JBQWdCLEVBQUUsSUFBSTtnQkFDdEIsZUFBZSxFQUFFLE9BQU87YUFDekIsQ0FBQztZQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUN6QixNQUFNLEVBQ04saUVBQWlFLENBQ2xFLENBQUM7WUFDRiwwRUFBMEU7WUFDMUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FDNUIsc0JBQXNCLENBQUMsNEJBQTRCLEVBQ25ELE1BQU0sQ0FDUCxDQUFDO1lBRUYsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFlBQVksR0FBRyxzQ0FBc0MsQ0FBQztZQUU1RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFFbEQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUNuRCxDQUFDO0lBQ0gsQ0FBQzs4R0FwRFUsb0NBQW9DO2tIQUFwQyxvQ0FBb0MsY0FEdkIsTUFBTTs7MkZBQ25CLG9DQUFvQztrQkFEaEQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXV0aC1zdGF0ZS9hdXRoLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3BlbklkQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uLy4uL2NvbmZpZy9vcGVuaWQtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbG9nZ2luZy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBUb2tlblZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbi90b2tlbi12YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FsbGJhY2tDb250ZXh0IH0gZnJvbSAnLi4vY2FsbGJhY2stY29udGV4dCc7XG5pbXBvcnQgeyBGbG93c0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vZmxvd3MtZGF0YS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZWZyZXNoU2Vzc2lvbkNhbGxiYWNrSGFuZGxlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2UgPSBpbmplY3QoTG9nZ2VyU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoU3RhdGVTZXJ2aWNlID0gaW5qZWN0KEF1dGhTdGF0ZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmxvd3NEYXRhU2VydmljZSA9IGluamVjdChGbG93c0RhdGFTZXJ2aWNlKTtcblxuICAvLyBTVEVQIDEgUmVmcmVzaCBzZXNzaW9uXG4gIHJlZnJlc2hTZXNzaW9uV2l0aFJlZnJlc2hUb2tlbnMoXG4gICAgY29uZmlnOiBPcGVuSWRDb25maWd1cmF0aW9uXG4gICk6IE9ic2VydmFibGU8Q2FsbGJhY2tDb250ZXh0PiB7XG4gICAgY29uc3Qgc3RhdGVEYXRhID1cbiAgICAgIHRoaXMuZmxvd3NEYXRhU2VydmljZS5nZXRFeGlzdGluZ09yQ3JlYXRlQXV0aFN0YXRlQ29udHJvbChjb25maWcpO1xuXG4gICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKFxuICAgICAgY29uZmlnLFxuICAgICAgJ1JlZnJlc2hTZXNzaW9uIGNyZWF0ZWQuIEFkZGluZyBteWF1dG9zdGF0ZTogJyArIHN0YXRlRGF0YVxuICAgICk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5hdXRoU3RhdGVTZXJ2aWNlLmdldFJlZnJlc2hUb2tlbihjb25maWcpO1xuICAgIGNvbnN0IGlkVG9rZW4gPSB0aGlzLmF1dGhTdGF0ZVNlcnZpY2UuZ2V0SWRUb2tlbihjb25maWcpO1xuXG4gICAgaWYgKHJlZnJlc2hUb2tlbikge1xuICAgICAgY29uc3QgY2FsbGJhY2tDb250ZXh0OiBDYWxsYmFja0NvbnRleHQgPSB7XG4gICAgICAgIGNvZGU6ICcnLFxuICAgICAgICByZWZyZXNoVG9rZW4sXG4gICAgICAgIHN0YXRlOiBzdGF0ZURhdGEsXG4gICAgICAgIHNlc3Npb25TdGF0ZTogbnVsbCxcbiAgICAgICAgYXV0aFJlc3VsdDogbnVsbCxcbiAgICAgICAgaXNSZW5ld1Byb2Nlc3M6IHRydWUsXG4gICAgICAgIGp3dEtleXM6IG51bGwsXG4gICAgICAgIHZhbGlkYXRpb25SZXN1bHQ6IG51bGwsXG4gICAgICAgIGV4aXN0aW5nSWRUb2tlbjogaWRUb2tlbixcbiAgICAgIH07XG5cbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dEZWJ1ZyhcbiAgICAgICAgY29uZmlnLFxuICAgICAgICAnZm91bmQgcmVmcmVzaCBjb2RlLCBvYnRhaW5pbmcgbmV3IGNyZWRlbnRpYWxzIHdpdGggcmVmcmVzaCBjb2RlJ1xuICAgICAgKTtcbiAgICAgIC8vIE5vbmNlIGlzIG5vdCB1c2VkIHdpdGggcmVmcmVzaCB0b2tlbnM7IGJ1dCBLZXkgY2xvYWsgbWF5IHNlbmQgaXQgYW55d2F5XG4gICAgICB0aGlzLmZsb3dzRGF0YVNlcnZpY2Uuc2V0Tm9uY2UoXG4gICAgICAgIFRva2VuVmFsaWRhdGlvblNlcnZpY2UucmVmcmVzaFRva2VuTm9uY2VQbGFjZWhvbGRlcixcbiAgICAgICAgY29uZmlnXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gb2YoY2FsbGJhY2tDb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gJ25vIHJlZnJlc2ggdG9rZW4gZm91bmQsIHBsZWFzZSBsb2dpbic7XG5cbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dFcnJvcihjb25maWcsIGVycm9yTWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==