CodePráticov3.3.0
Angular

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.