import { inject } from '@angular/core'; import { HttpInterceptorFn, HttpErrorResponse } from '@angular/common/http'; import { Router } from '@angular/router'; import { catchError, throwError } from 'rxjs'; import { AuthService } from './auth.service'; export const authInterceptor: HttpInterceptorFn = (req, next) => { const auth = inject(AuthService); const router = inject(Router); const token = auth.getToken(); if (token) { req = req.clone({ setHeaders: { Authorization: `Bearer ${token}` } }); } return next(req).pipe( catchError((err) => { if (err instanceof HttpErrorResponse && err.status === 401) { auth.logout(); router.navigate(['/login']); } return throwError(() => err); }), ); };