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.
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP