在Angular中使用HTTP拦截器为第三方库中的身份验证头部添加JWT令牌,可以按照以下步骤进行:
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest, next: HttpHandler): Observable> {
// 在请求头中添加JWT令牌
const token = 'your_jwt_token';
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(request);
}
}
import { NgModule } from '@angular/core';
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { JwtInterceptor } from './jwt.interceptor';
@NgModule({
imports: [HttpClientModule],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: JwtInterceptor,
multi: true
}
]
})
export class AppModule { }
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-example',
template: `
`
})
export class ExampleComponent {
constructor(private http: HttpClient) {}
sendRequest() {
this.http.get('https://api.example.com/data')
.subscribe(response => {
console.log(response);
});
}
}
这样,每次发送HTTP请求时,拦截器都会在请求头中添加JWT令牌,以实现身份验证。