0
votes

Intercepteur angulaire Déconnectez-vous l'application s'il y a une réponse 401?

Dans mon intercepteur, je veux mettre un tuyau sur la réponse et faire de la déconnexion si le code d'état de réponse est 401, mais le problème est lorsque je mets un CatchError, l'observable n'est pas de type httpevent et la fonction d'interception attend le retour de ce type? xxx

}.


1 commentaires

Créez un itinéraire de déconnexion et naviguez.


3 Réponses :


1
votes

lancer une nouvelle erreur qui sera transmise au lieu de simplement retourner l'erreur: xxx


0 commentaires

1
votes

Vous pouvez gérer votre Error réponse avec l'approche ci-dessous, essayez ceci xxx

J'espère que cela résoudra votre problème :)


1 commentaires

Ce code est destiné à une version plus ancienne de RXJS New One est Tap et devrait être à l'intérieur du tuyau. TX pour votre aide



0
votes

Voici comment je l'ai fait.

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    //  req = req.clone({headers: req.headers.set('source', 'WEB')});
    req = req.clone({
        headers: new HttpHeaders({
            'source': 'WEB',
            'Authorization': localStorage.getItem(TOKEN) || ''
        })
    });
    return next.handle(req).pipe(map((e: HttpEvent<any>) => {
        if (e instanceof HttpResponse) {
    /*        console.error(e);
            console.log(e.status);*/
            if (e.status === 401) {
                throw new Error('invalid token');
            }
        }
        return e;
    }));
}


0 commentaires