import { Injectable } from '@angular/core'; import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http'; import { Observable } from 'rxjs'; import { environment } from '@environments/environment'; import { AuthenticationService } from '@app/_services'; @Injectable() export class JwtInterceptor implements HttpInterceptor { constructor(private authenticationService: AuthenticationService) { } intercept(request: HttpRequest, next: HttpHandler): Observable> { const oauthToken = this.authenticationService.token.value; const isLoggedIn = oauthToken && oauthToken.access_token; const isApiUrl = request.url.startsWith(environment.apiUrl); if (isLoggedIn && isApiUrl) { request = request.clone({ setHeaders: { Authorization: `${oauthToken.token_type} ${oauthToken.access_token}` } }); } return next.handle(request); } }