在Angular应用中,HTTP拦截器用于修改传出HTTP请求和传入HTTP响应。如果您的Angualr应用未发送JWT,则可能是您的HTTP拦截器未正确地配置。
以下是一些可能导致HTTP拦截器未发送JWT的原因和代码示例:
JWT过期或未设置 - 确保您的JWT有效且在到期之前未到期。
未在HTTP拦截器中设置请求标头 - 确保您的HTTP拦截器将JWT作为标头发送。
下面是示例代码,可用于设置HTTP拦截器以将JWT作为标头发送:
import { Injectable } from '@angular/core'; import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http'; import { Observable } from 'rxjs/Observable';
@Injectable()
export class JwtInterceptor implements HttpInterceptor {
intercept(request: HttpRequest
// Retrieve JWT from local storage or wherever you store it
const jwt = localStorage.getItem('jwt');
if (jwt) {
request = request.clone({
setHeaders: {
'Authorization': `Bearer ${jwt}`
}
});
}
return next.handle(request);
} }
在上面的代码示例中,我们只需获取JWT并将其添加到当前请求的标头中。这样,您就可以确保将JWT发送给服务器,以便服务器可以验证请求的身份。