Angular 4.3 - HTTP Interceptor - refresh JWT token

前端 未结 4 647
清酒与你
清酒与你 2020-12-29 14:50

I need to react (in interceptor class) on 403 Forbidden HTTP status (to obtain/refresh) JWT token and retry the request with fresh token.

In the code below, when ser

4条回答
  •  情深已故
    2020-12-29 14:59

    import { Injectable } from '@angular/core';
    import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
    import { Observable } from 'rxjs';
    
    @Injectable()
    export class JwtInterceptor implements HttpInterceptor {
        intercept(request: HttpRequest, next: HttpHandler): Observable> {
            // add authorization header with jwt token if available
            const currentUser = JSON.parse(sessionStorage.getItem('currentUser'));
            console.log('Interceter called');
            console.log(currentUser);
            //  const re = 'https://newsapi.org';
            const re = '/user';
            if (request.url.search(re) === -1) {
    
                if (currentUser && currentUser.token) {
                    console.log('Token is being added....!!!!!');
                    // console.log(currentUser.token);
                    request = request.clone({
                        setHeaders: {
                            Authorisation: `Token ${currentUser.token}`,
                        }
                    });
                }
                console.log('Request Sent :');
                console.log(request);
            }
            return next.handle(request);
        }
    }
    

提交回复
热议问题