Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Injectable } from '@angular/core';
- import {
- HttpInterceptor,
- HttpRequest,
- HttpHandler,
- HttpEvent,
- HttpResponse,
- HttpErrorResponse
- } from '@angular/common/http';
- import { Observable, throwError, BehaviorSubject, of } from 'rxjs';
- import { map, catchError, retry } from 'rxjs/operators';
- import { LoginService } from './../login/login.service';
- import { Router } from '@angular/router';
- import { ToastService } from 'libs/shared-components/src/lib/notification/notification.service';
- import { LoaderService } from '../loader.service';
- @Injectable()
- export class AuthInterceptorService implements HttpInterceptor {
- constructor(private loginService: LoginService, private router:Router, private toastService:ToastService, private service:LoaderService) {}
- private handleAuthError(err: HttpErrorResponse): Observable<any> {
- if (err.status === 401 || err.status === 403) {
- localStorage.clear();
- this.router.navigateByUrl(`/login`);
- return of(err.message);
- }
- }
- intercept(
- req: HttpRequest<any>,
- next: HttpHandler
- ): Observable<HttpEvent<any>> {
- const token = this.loginService.getToken();
- if (token) {
- req = req.clone({
- headers: req.headers.set('Authorization', 'Bearer ' + token)
- });
- }
- if (!req.headers.has('Content-Type')) {
- req = req.clone({
- headers: req.headers.set('Content-Type', 'application/json')
- });
- }
- req = req.clone({ headers: req.headers.set('Accept', 'application/json') });
- return next.handle(req).pipe(catchError( x => this.handleAuthError(x)));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement