Zu behandeln, wie unberechtigte Anfragen(status 401 oder 403) mit neuen httpClient in eckigen 4.3

Ich habe eine auth-interceptor.service.ts zur Bearbeitung der Anfragen

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);
    }
}

Aber ich bekomme die folgende Fehlermeldung. Nichts wirklich passiert, wie es nicht den cookie löschen oder es funktioniert nicht, navigieren Sie zu login-Seite
Jede Hilfe oder Anregungen wäre willkommen.

Zu behandeln, wie unberechtigte Anfragen(status 401 oder 403) mit neuen httpClient in eckigen 4.3

HttpClient unterstützt Abfangjäger. Sie verwenden sollten, um Fehler zu behandeln transparent, stattdessen zwingen Sie alle Ihre code zu verwenden, ApiService statt HttpClient direkt.
Ich habe auch ein auth-interceptor. Ich habe aktualisiert die post. Ist, dass der Ort, um solche Wünsche? Alle Beispiel-code??
wenn Sie gehen mit Ihrer Methode, Sie gehen zu müssen, wickeln Sie den gesamten http-Dienst. Ich würde empfehlen, entweder mit einem interceptor oder einer Erweiterung der http-Dienst und überschreiben die request-Methode nur.
Ich habe auch ein interceptor add header auf jede Anfrage. Ich bin nicht sicher, wie Sie Sie zu behandeln die Antwort von jeder Anfrage in den interceptor. Ich habe aktualisiert die post
Hinzugefügt ein Beispiel in einer Antwort

InformationsquelleAutor Sai Ram Gupta | 2017-09-02

Schreibe einen Kommentar