Tenho uma aplicação angular que faz chamadas para uma API que está protegida, então tenho o interceptor abaixo para enviar um token Bearer, mas sempre recebo 401, se eu tiro autenticação na API a aplicação recebe as informações sem problemas, usando o Postman eu consigo chamar a API autenticada sem problemas:
@Injectable()
export class RequestInterceptor implements HttpInterceptor {
constructor(private tokenService: TokenService) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent
| HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
if(this.tokenService.hasToken()) {
const token = this.tokenService.getToken();
req = req.clone({
setHeaders: {
'Authorization': `Bearer ` + token,
'Content-Type': 'application/x-www-form-urlencoded'
}
});
}
return next.handle(req);
}
}
Minha API é em .Net Core e eu me certifiquei que ela aceite tudo:
services.AddCors(options =>
{
options.AddPolicy("AllowAll",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader();
});
});
Não sei o que pode ser, adicionei todos os headers que o Postman adiciona e mesmo assim recebo 401.
Edit.: Descobri o que aconteceu, O token estava vencido xD! Alguém sabe a melhor maneira da aplicação ficar renovando o token?