TransWikia.com

Automatizando obtencion de nuevos accessToken desde HttpInterceptors en Angular 9

Stack Overflow en español Asked by juan juanito on September 11, 2020

Estoy automatizando la obtención de accessToken desde la respuesta del backend, para cualquier llamada desde los componentes, pero al ocupar retry(), este último se ejecuta más rápido, que el HttpInterceptor siguiente:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable< HttpEvent<any>> {
      return next.handle(request).pipe(catchError(err => {
        console.log('errors service',err);
          if ([401].includes(err.status)) {
              
              console.log('en el error interceptor');
              this.authService.refreshToken()
              .subscribe(res =>{
                console.log('new accessToken', res);
                const newHead = request.clone()
                headers.headers.set('Authorization', res.token)
                return next.handle(newHead)
              },err=>{
                console.log('error  new accessToken', err);
                return throwError(err)
              })

Mediante este camino, el reintento ocurre antes que el llamado http dentro del HttpInterceptor, lo cual obtengo 2 llamadas con un 401 y luego la llamada al endpoint del refreshToken.
Como puedo mejorar este codigo, y hacer que la segunda llamada, vaya con el nuevo token.
Gracias por leer y espero sus respuestas.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP