Angular 使用 JWT 检测 401 未授权访问

Angular Detect 401 Unauthorized Access using JWT

我按照几篇文章在 Angular 上实施 JWT 身份验证,似乎一切正常,除了检测到 401 未经授权。

我想将用户重定向到登录页面,但我无法检测到 401 错误。

我有这个 class:

export class JwtInterceptor implements HttpInterceptor {

  constructor(public authService: AuthService) {
  }

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).do((event: HttpEvent<any>) => {
      if (event instanceof HttpResponse) {
        console.log('HTPP REQUEST');
      }
    }, (err: any) => {
      if (err instanceof HttpErrorResponse) {
        if (err.status === 401) {
          this.authService.collectFailedRequest(request);
          console.log('Login boy');
        }
      }
    });
  }
}

但不确定在哪里使用它。我有包含 login()getToken() 方法的 auth.service.ts 和包含

jwt.interceptor.ts
providers: [PagerService, AuthService,
  {
    provide: HTTP_INTERCEPTORS,
    useClass: TokenInterceptor,
    multi: true
  }, {
    provide: HTTP_INTERCEPTORS,
    useClass: JwtInterceptor,
    multi: true
  }
]

我必须在 module.app.ts 中添加多个拦截器。不要忘记在拦截器中的 export class... 之前添加 @Injectable()