Angular 4使用HttpInterceptor在运行时绑定头

时间:2017-11-27 10:50:37

标签: angular angular-http-interceptors angular4-httpclient

PPl在这里标记它重复而不是阅读这个问题... 链接是如何添加拦截器...我已经做了并且已经发布了代码,问题是修改要在拦截器中发送的头文件

申请流程 -

登录页面 - 用户登录获取令牌,然后在所有http请求中都需要发送该令牌。

工作场景

   var headers = new HttpHeaders()
        .set('Content-Type', 'application/json')
        .set('X-Token', '123'); <-- read token from storage
return this.http.post(this.url + '/' + endpoint, body, {headers: this.headers});

但问题是我必须每次都读取那个不需要的令牌,所以我改编代码来扩展HttpInterceptor

export class AddHeaderInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // Clone the request to add the new header
    const clonedRequest = req.clone({ headers: req.headers.set('X-Token', 'a') });

    // Pass the cloned request instead of the original request to the next handle
    return next.handle(clonedRequest);
  }

但问题是有谁知道,我怎么能在运行时添加该令牌,基本上在用户登录并获取该令牌后,我需要更新该拦截器中的令牌。

0 个答案:

没有答案