HttpInterceptor es una interfaz que se ejecuta antes de enviar una petición http a un servicio, comúnmente se usa para adjuntar la información de autenticación del usuario a la peticiones.
1.- Se crea el provider del interceptor
ionic g provider interceptor
2.- En el archivo del provider creamos la clase que implemente la interfaz HttpInterceptor.
export class InterceptorsProvider implements HttpInterceptor
3.-Esta implementación requiere implementar el método intercept, el cual recibe la petición y el siguiente interceptor en la cadena.
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {}
4.-Dentro de este método integramos la lógica para obtener los headers que deseamos enviar en cada una de las peticiones y los establecemos en el clon de la petición.
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const headers = new HttpHeaders({
'token-usuario': 'ABC112EO3O309754789'
});
const reqClone = req.clone({
headers
});
return next.handle(reqClone);
}
5.- Ahora convertimos la clase en provider para que el framework pueda hacer uso de ella, esto se hace en el módulo principal.
providers: [
StatusBar,
SplashScreen,
{
provide: HTTP_INTERCEPTORS, useClass: InterceptorProvider, multi: true
},
]
6.-Listo, ahora todas las peticiones antes de ser enviadas deberán pasar por nuestro interceptor
para obtener los headers.