I have a problem, i want to add Token in my API HTTP request. For get my token, i make http request. Here my code :
HttpInterceptor :
@Injectable()
export class TokenInterceptor implements HttpInterceptor {
constructor(private inj: Injector) { }
getRequestWithAuthorization(request: HttpRequest<any>):any
{
let token:String ;
this.inj.get(CnafUserService).getTokenJWTObservable().subscribe( data => {
token = data ;
request = request.clone({ headers: request.headers.set('Authorization', `${token}`) });
return request;
})
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
//Ajout du header Authorization
if (request && request.url.match("^/api/"))
{
//Here the problem, request is null because the call is asynchronous
request = this.getRequestWithAuthorization(request,next);
return next.handle(request);
}
return next.handle(request);
}
}
The service :
getTokenJWTObservable(): Observable<any> {
return this.http.get(this.urlServletJwt);
}
How, i call for get the token and then return the request with header ?
Thank for your help