我想在HttpInterceptor内部的以下逻辑中添加一个if语句:
const authToken = this.auth.getAuthorizationToken();
const authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
我想在使用authToken更新标头之前检查authToken是否存在。我很确定这是语法问题,还是有另一种方法可以在代码块或其他内容中设置req.clone()的headers属性。
这是我最好的一击,但我觉得有更好的方法可以做到:
let authReq: HttpRequest<any> = req;
if (authToken) {
authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
}
答案 0 :(得分:1)
您处在正确的轨道上。如果令牌存在,则需要修改请求;如果没有令牌,则保持不变。示例:
intercept(
req: HttpRequest<any>,
next: HttpHandler,
): Observable<HttpEvent<any>> {
const authToken = this.auth.getAuthorizationToken();
if (authToken) {
req = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
}
return next.handle(req);
}