在Angular HttpInterceptor中添加是否向req.clone添加headers的逻辑
Adding logic whether to add headers or not to req.clone in an Angular HttpInterceptor
我想在我的 HttpInterceptor 中的以下逻辑中添加一个 if 语句:
const authToken = this.auth.getAuthorizationToken();
const authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
我想在使用 authToken 更新 headers 之前检查 authToken 是否存在。我很确定这要么是语法问题,要么有另一种方法可以在代码块或其他东西中设置 req.clone() 的 headers 属性。
这是我的最佳作品,但我觉得还有更好的方法:
let authReq: HttpRequest<any> = req;
if (authToken) {
authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
}
你走在正确的轨道上。如果令牌存在,则需要修改请求;如果没有令牌,则保持不变。示例:
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);
}
我想在我的 HttpInterceptor 中的以下逻辑中添加一个 if 语句:
const authToken = this.auth.getAuthorizationToken();
const authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
我想在使用 authToken 更新 headers 之前检查 authToken 是否存在。我很确定这要么是语法问题,要么有另一种方法可以在代码块或其他东西中设置 req.clone() 的 headers 属性。
这是我的最佳作品,但我觉得还有更好的方法:
let authReq: HttpRequest<any> = req;
if (authToken) {
authReq = req.clone({
headers: req.headers.set('Authorization', `Bearer ${authToken}`)
});
}
你走在正确的轨道上。如果令牌存在,则需要修改请求;如果没有令牌,则保持不变。示例:
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);
}