UNPKG

geminis-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.

41 lines 4.93 kB
import { Injectable } from '@angular/core'; import { GnHttpInterceptorConfig } from './HttpInterceptorConfig'; import { GnOAuthUtils } from './OAuthUtils'; import { GnSiteInfo } from './SiteInfo'; import { Router } from '@angular/router'; export class GnOAuthHttpInterceptor { constructor(config, siteInfo, route) { this.config = config; this.siteInfo = siteInfo; this.route = route; this.oAuthUtils = new GnOAuthUtils(); } intercept(req, next) { let headers = req.headers; if (this.config.startWithUrl && req.url.startsWith(this.config.startWithUrl) && !this.config.ignoreUrls.includes(req.url)) { const token = this.oAuthUtils.getToken(); if (this.oAuthUtils.tokenExpired(token)) { if (this.siteInfo && this.siteInfo.loginUrl) { this.route.navigateByUrl(this.siteInfo.loginUrl); } } else { headers = req.headers.set('Authorization', 'Bearer ' + token); } } return next.handle(req.clone({ headers })); } } GnOAuthHttpInterceptor.decorators = [ { type: Injectable } ]; GnOAuthHttpInterceptor.ctorParameters = () => [ { type: GnHttpInterceptorConfig }, { type: GnSiteInfo }, { type: Router } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT0F1dGhIdHRwSW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW1pbmlzLW5nL3NyYy9hcHAtY29uZmlnL09BdXRoSHR0cEludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxNQUFNLE9BQU8sc0JBQXNCO0lBSWpDLFlBQW9CLE1BQStCLEVBQy9CLFFBQW9CLEVBQ3BCLEtBQWE7UUFGYixXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFKekIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFLeEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVk7ZUFDdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7ZUFDNUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO29CQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUNsRDthQUNGO2lCQUFNO2dCQUNMLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO2FBQy9EO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUMzQixPQUFPO1NBQ1IsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDOzs7WUEzQkYsVUFBVTs7O1lBTEgsdUJBQXVCO1lBRXZCLFVBQVU7WUFDVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBIYW5kbGVyLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7R25IdHRwSW50ZXJjZXB0b3JDb25maWd9IGZyb20gJy4vSHR0cEludGVyY2VwdG9yQ29uZmlnJztcbmltcG9ydCB7R25PQXV0aFV0aWxzfSBmcm9tICcuL09BdXRoVXRpbHMnO1xuaW1wb3J0IHtHblNpdGVJbmZvfSBmcm9tICcuL1NpdGVJbmZvJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR25PQXV0aEh0dHBJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgcHJpdmF0ZSBvQXV0aFV0aWxzID0gbmV3IEduT0F1dGhVdGlscygpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBHbkh0dHBJbnRlcmNlcHRvckNvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzaXRlSW5mbzogR25TaXRlSW5mbyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICBsZXQgaGVhZGVycyA9IHJlcS5oZWFkZXJzO1xuICAgIGlmICh0aGlzLmNvbmZpZy5zdGFydFdpdGhVcmxcbiAgICAgICYmIHJlcS51cmwuc3RhcnRzV2l0aCh0aGlzLmNvbmZpZy5zdGFydFdpdGhVcmwpXG4gICAgICAmJiAhdGhpcy5jb25maWcuaWdub3JlVXJscy5pbmNsdWRlcyhyZXEudXJsKSkge1xuICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLm9BdXRoVXRpbHMuZ2V0VG9rZW4oKTtcbiAgICAgIGlmICh0aGlzLm9BdXRoVXRpbHMudG9rZW5FeHBpcmVkKHRva2VuKSkge1xuICAgICAgICBpZiAodGhpcy5zaXRlSW5mbyAmJiB0aGlzLnNpdGVJbmZvLmxvZ2luVXJsKSB7XG4gICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKHRoaXMuc2l0ZUluZm8ubG9naW5VcmwpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzID0gcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdG9rZW4pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxLmNsb25lKHtcbiAgICAgIGhlYWRlcnNcbiAgICB9KSk7XG4gIH1cblxufVxuIl19