From 14797de35db595b96c8de82318c2f340a0e552f3 Mon Sep 17 00:00:00 2001 From: Sambego Date: Tue, 7 Jul 2020 15:42:44 +0200 Subject: [PATCH] Remove dependency on the window object for SSR support --- projects/angular-jwt/package.json | 2 +- .../angular-jwt/src/lib/jwt.interceptor.ts | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/projects/angular-jwt/package.json b/projects/angular-jwt/package.json index 314e6502..5cade25b 100644 --- a/projects/angular-jwt/package.json +++ b/projects/angular-jwt/package.json @@ -1,6 +1,6 @@ { "name": "@auth0/angular-jwt", - "version": "5.0.0", + "version": "5.0.1", "description": "JSON Web Token helper library for Angular", "private": false, "repository": { diff --git a/projects/angular-jwt/src/lib/jwt.interceptor.ts b/projects/angular-jwt/src/lib/jwt.interceptor.ts index 77ce16a7..5e610df1 100644 --- a/projects/angular-jwt/src/lib/jwt.interceptor.ts +++ b/projects/angular-jwt/src/lib/jwt.interceptor.ts @@ -5,6 +5,7 @@ import { HttpEvent, HttpInterceptor, } from "@angular/common/http"; +import { DOCUMENT } from "@angular/common"; import { JwtHelperService } from "./jwthelper.service"; import { JWT_OPTIONS } from "./jwtoptions.token"; @@ -26,7 +27,8 @@ export class JwtInterceptor implements HttpInterceptor { constructor( @Inject(JWT_OPTIONS) config: any, - public jwtHelper: JwtHelperService + public jwtHelper: JwtHelperService, + @Inject(DOCUMENT) private document: Document ) { this.tokenGetter = config.tokenGetter; this.headerName = config.headerName || "Authorization"; @@ -41,11 +43,11 @@ export class JwtInterceptor implements HttpInterceptor { } isAllowedDomain(request: HttpRequest): boolean { - const requestUrl: URL = new URL(request.url, window.location.origin); + const requestUrl: URL = new URL(request.url, this.document.location.origin); // If the host equals the current window origin, // the domain is allowed by default - if (requestUrl.host === window.location.host) { + if (requestUrl.host === this.document.location.host) { return true; } @@ -68,12 +70,18 @@ export class JwtInterceptor implements HttpInterceptor { } isDisallowedRoute(request: HttpRequest): boolean { - const requestedUrl: URL = new URL(request.url, window.location.origin); + const requestedUrl: URL = new URL( + request.url, + this.document.location.origin + ); return ( this.disallowedRoutes.findIndex((route: string | RegExp) => { if (typeof route === "string") { - const parsedRoute: URL = new URL(route, window.location.origin); + const parsedRoute: URL = new URL( + route, + this.document.location.origin + ); return ( parsedRoute.hostname === requestedUrl.hostname && parsedRoute.pathname === requestedUrl.pathname