使用Angular v6,也使用@ angular / common / http
尝试编写拦截器,该拦截器将检查令牌是否已过期,以及是否将http请求发送到服务器,而其他请求应等待。
token.interceptor.ts
中的示例
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (this.tokenHasExpired) {
if (!this.token) {
return from('token').pipe(
mergeMap(() => this.auth.refreshToken()),
tap(() => {
this.tokenHasExpired = false;
}),
mergeMap(() => next.handle(req)),
);
}
}
return next.handle(req);
}