[英]Angular interceptor executed before http request
我正在使用 MEAN 应用程序,但在使用令牌拦截器时遇到了问题。 它应该在用户使用以下代码登录后应用标题:
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
const token = localStorage.getItem('token');
let req = request;
if (token) {
req = request.clone({
setHeaders: {
authorization: `Bearer ${token}`
}
});
}
}
但是,我调试了代码,它在登录调用 api 之前执行(因此没有登录、没有令牌、没有用户数据等)。 因此它没用,因为我需要令牌来设置标题,如代码所示。
您可以将它与管道和水龙头(或任何其他 RxJs 运算符)结合使用,以在响应调用到达您的服务之前对其进行操作。
intercept(req: HttpRequest<any>, next: HttpHandler) {
// change req here before being send
return next.handle(req)
.pipe(
tap(
// to access data, or use map to manipulate it.
)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.