import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse, } from '@angular/common/http'; import { throwError, Observable } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { Router } from '@angular/router'; @Injectable() export class AuthInterceptor implements HttpInterceptor { constructor(private router: Router) {} intercept( req: HttpRequest, next: HttpHandler ): Observable> { return next.handle(req).pipe( catchError((error: HttpErrorResponse) => { if (error && error.status === 401) { this.router.navigate(['/login']); } return throwError(error); }) ); } }