Angular 10不再添加标头以通过拦截器进行请求

时间:2020-07-04 16:39:04

标签: angular

我有一些代码对于最近5个左右的角度版本来说对我来说都是完美的。

一旦升级到Angular 10,就不再在标头上设置不记名令牌。在升级说明中,我没有看到有关对HTTP客户端进行修改或其工作方式的任何内容。

现在任何人都必须处理我的代码吗?

  private async handleAccess(request: HttpRequest<any>, next: HttpHandler): Promise<HttpEvent<any>> {
    await this.angularFireAuth.user.subscribe((user) => {
      user.getIdToken().then(
        (token) =>
          (request = request.clone({
            setHeaders: {
              Authorization: 'Bearer ' + token,
            },
          }))
      );
    });

    return next.handle(request).toPromise();
  }

1 个答案:

答案 0 :(得分:0)

我一直努力让事情重新开始。流程一定有问题,利用管道+ mergeMap我得到了预期的行为

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return this.angularFireAuth.idToken.pipe(
      mergeMap((token) => {
        return next.handle(
          request.clone({
            setHeaders: {
              Authorization: 'Bearer ' + token,
            },
          })
        );
      })
    );
  }