【发布时间】:2022-02-04 22:58:40
【问题描述】:
在 Angular 应用程序中,我想加密请求并将其发送到服务器,同时在接收时解密响应。
我已经为这两个任务创建了一个 HttpInterceptor。
我能够加密请求并且它工作正常,但是在解密响应时我无法做到这一点。
注意:加密和解密都是异步方法:
@Injectable()
export class MyHttpInterceptor implements HttpInterceptor {
constructor(
private router: Router,
) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return from(this.encryptRequest(req)).pipe(
switchMap((data) => {
return next.handle(data);
}),
tap(
(event:any) => {
if (event instanceof HttpResponse) {
this.decryptResponse(event).then((res:any)=>{
return next.handle(res);
});
}else{
return event;
}
},
(error):any => {
//......
},
),
);
}
async encryptRequest(request: HttpRequest<any>) {
//..encryption logic
}
async decryptResponse(response: HttpResponse<any>) {
//...decryption logic
}
}
但是解密后的响应没有到达实际的 API 调用。
【问题讨论】:
标签: angular async-await angular-http-interceptors