問題があります。私はAPI HTTPリクエストにTokenを追加したいと思います。私のトークンを取得するために、私はhttpを要求します。 ここに私のコード:HttpInterceptor + Angular 5およびHttpClient
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);
}
}
サービス:
getTokenJWTObservable(): Observable<any> {
return this.http.get(this.urlServletJwt);
}
私が求める方法は、トークンを取得し、ヘッダーとリクエストを返しますか?あなたの助け