在过去的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(); }
我设法使事情恢复正常。一定是流出了问题,利用管道+合并映射,我得到了预期的行为
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, }, }) ); }) ); }