要将angular-jwt令牌发送到HTTP请求头中,您可以使用Angular的HttpInterceptor来修改请求头。
首先,您需要创建一个名为JwtInterceptor的HttpInterceptor类,该类将负责修改每个请求的头部以包含令牌。以下是一个示例代码:
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from 'rxjs';
import { AuthService } from 'your-auth-service'; // 替换为您的实际认证服务
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
constructor(private authService: AuthService) { }
intercept(request: HttpRequest, next: HttpHandler): Observable> {
// 获取令牌
const token = this.authService.getAuthToken(); // 替换为从您的认证服务获取令牌的方法
// 如果令牌存在,则将其添加到请求头中
if (token) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
}
return next.handle(request);
}
}
然后,您需要在您的模块中将JwtInterceptor添加到HTTP_INTERCEPTORS提供者列表中。例如,如果您的模块名为AppModule,您可以这样做:
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { JwtInterceptor } from 'your-jwt-interceptor';
@NgModule({
imports: [
HttpClientModule
],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: JwtInterceptor,
multi: true
}
]
})
export class AppModule { }
请注意,上述示例代码中的"your-auth-service"和"your-jwt-interceptor"应替换为您实际使用的认证服务和JwtInterceptor类。