UNPKG

@dbg-riskit/angular-auth

Version:

47 lines 6.52 kB
import { Injectable } from '@angular/core'; import { HttpRequestHeaders } from '@dbg-riskit/angular-http'; import { AuthTokenType } from '@dbg-riskit/common'; import { defer } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "./auth.storage.service"; export class AuthConfigConsts { } AuthConfigConsts.DEFAULT_HEADER_NAME = 'Authorization'; AuthConfigConsts.HEADER_PREFIX_BEARER = 'Bearer '; export class AuthHttpInterceptor { constructor(authStorage) { this.authStorage = authStorage; } intercept(request, next) { return defer(() => { if (request.headers instanceof HttpRequestHeaders) { const tokenType = request.headers.tokenType; switch (tokenType) { case AuthTokenType.API: return handleInterception(this.authStorage.idToken, request, next); case AuthTokenType.AUTH: return handleInterception(this.authStorage.accessToken, request, next); default: return next.handle(request); } } return next.handle(request); }); } } AuthHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: AuthHttpInterceptor, deps: [{ token: i1.AuthStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); AuthHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: AuthHttpInterceptor }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: AuthHttpInterceptor, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i1.AuthStorageService }]; } }); function handleInterception(token, request, next) { if (token) { request = request.clone({ setHeaders: { [AuthConfigConsts.DEFAULT_HEADER_NAME]: `${AuthConfigConsts.HEADER_PREFIX_BEARER}${token}` } }); } return next.handle(request); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5odHRwLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1hdXRoL3NyYy9saWIvYXV0aC5odHRwLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7OztBQUd2QyxNQUFNLE9BQU8sZ0JBQWdCOztBQUNYLG9DQUFtQixHQUFHLGVBQWUsQ0FBQztBQUN0QyxxQ0FBb0IsR0FBRyxTQUFTLENBQUM7QUFJbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QixZQUFvQyxXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFDbkUsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQzdELE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksT0FBTyxDQUFDLE9BQU8sWUFBWSxrQkFBa0IsRUFBRTtnQkFDL0MsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLFFBQVEsU0FBUyxFQUFFO29CQUNmLEtBQUssYUFBYSxDQUFDLEdBQUc7d0JBQ2xCLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN2RSxLQUFLLGFBQWEsQ0FBQyxJQUFJO3dCQUNuQixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDM0U7d0JBQ0ksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUNuQzthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0hBcEJRLG1CQUFtQjtvSEFBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7O0FBd0JYLFNBQVMsa0JBQWtCLENBQUMsS0FBb0IsRUFBRSxPQUE2QixFQUNuRCxJQUFpQjtJQUN6QyxJQUFJLEtBQUssRUFBRTtRQUNQLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3BCLFVBQVUsRUFBRTtnQkFDUixDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLEVBQUU7YUFDN0Y7U0FDSixDQUFDLENBQUM7S0FDTjtJQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwUmVxdWVzdEhlYWRlcnN9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItaHR0cCc7XG5pbXBvcnQge0F1dGhUb2tlblR5cGUsIE1heWJlfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0F1dGhTdG9yYWdlU2VydmljZX0gZnJvbSAnLi9hdXRoLnN0b3JhZ2Uuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBdXRoQ29uZmlnQ29uc3RzIHtcbiAgICBwdWJsaWMgc3RhdGljIERFRkFVTFRfSEVBREVSX05BTUUgPSAnQXV0aG9yaXphdGlvbic7XG4gICAgcHVibGljIHN0YXRpYyBIRUFERVJfUFJFRklYX0JFQVJFUiA9ICdCZWFyZXIgJztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhIdHRwSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IEF1dGhTdG9yYWdlU2VydmljZSkge1xuICAgIH1cblxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIdHRwUmVxdWVzdEhlYWRlcnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2tlblR5cGUgPSByZXF1ZXN0LmhlYWRlcnMudG9rZW5UeXBlO1xuICAgICAgICAgICAgICAgIHN3aXRjaCAodG9rZW5UeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQXV0aFRva2VuVHlwZS5BUEk6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlSW50ZXJjZXB0aW9uKHRoaXMuYXV0aFN0b3JhZ2UuaWRUb2tlbiwgcmVxdWVzdCwgbmV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQXV0aFRva2VuVHlwZS5BVVRIOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZUludGVyY2VwdGlvbih0aGlzLmF1dGhTdG9yYWdlLmFjY2Vzc1Rva2VuLCByZXF1ZXN0LCBuZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlSW50ZXJjZXB0aW9uKHRva2VuOiBNYXliZTxzdHJpbmc+LCByZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgaWYgKHRva2VuKSB7XG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcbiAgICAgICAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBbQXV0aENvbmZpZ0NvbnN0cy5ERUZBVUxUX0hFQURFUl9OQU1FXTogYCR7QXV0aENvbmZpZ0NvbnN0cy5IRUFERVJfUFJFRklYX0JFQVJFUn0ke3Rva2VufWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbn1cbiJdfQ==