How to handle unauthorized requests(status with 401 or 403) with new httpClient in angular 4.3

Discussão em 'Angular' iniciado por Sai Ram Gupta, Janeiro 10, 2025.

  1. I have an auth-interceptor.service.ts to handle the requests

    import {Injectable} from '@angular/core';
    import {HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest} from '@angular/common/http';
    import {Observable} from 'rxjs/Observable';
    import {Cookie} from './cookie.service';
    import {Router} from '@angular/router';

    @Injectable()
    export class AuthInterceptor implements HttpInterceptor {
    constructor(private router: Router) {}
    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // Clone the request to add the new header.
    const authReq = req.clone({headers: req.headers.set(Cookie.tokenKey, Cookie.getToken())});
    // Pass on the cloned request instead of the original request.
    return next.handle(authReq).catch(this.handleError);
    }

    private handleError(err: HttpErrorResponse): Observable<any> {
    console.log(err);
    if (err.status === 401 || err.status === 403) {
    Cookie.deleteUser();
    this.router.navigateByUrl(`/login`);
    return Observable.of(err.message);
    }
    // handle your auth error or rethrow
    return Observable.throw(err);
    }
    }


    But I get the following error. Nothing really happens like it doesn't delete the cookie or it doesn't navigate to login page Any help or suggestions would be appreciated.

    [​IMG]

    Continue reading...

Compartilhe esta Página