문제점이 있습니다. 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);
}
? 당신의 도움이 내가이 솔루션을 시도하지 않은