Interceptor HTTP no Angular: exemplo prático
Use HttpInterceptor para adicionar token, headers e tratamento comum às requisições HTTP de uma aplicação Angular.
Para que serve um interceptor?
O interceptor permite aplicar uma regra a várias requisições sem repetir código em cada service. É comum usá-lo para autenticação, cabeçalhos, logs e tratamento de respostas.
Exemplo adicionando token
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private auth: AuthService) {}
intercept(
req: HttpRequest<unknown>,
next: HttpHandler
): Observable<HttpEvent<unknown>> {
const token = this.auth.getToken();
if (!token) {
return next.handle(req);
}
const novaReq = req.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(novaReq);
}
}
Registrar no módulo
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: AuthInterceptor,
multi: true
}
]
Evite interceptar tudo sem critério
Se algumas URLs não devem receber o token, valide o endereço ou use uma convenção clara. Também evite registrar dados sensíveis em logs.
Assuntos:HttpInterceptorHTTPtoken