【发布时间】:2018-05-14 07:38:15
【问题描述】:
我有一个问题,我想在我的 API HTTP 请求中添加 Token。为了获取我的令牌,我发出 http 请求。 这是我的代码:
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);
}
如何,我要求获取令牌,然后返回带有标头的请求?
感谢您的帮助
【问题讨论】:
标签: angular