Angular检测401未经授权使用JWT



我遵循了几篇文章以在Angular上实现JWT身份验证,并且似乎一切正常,除了未经授权检测401。

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

我有这个课:

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');
        }
      }
    });
  }
}

,但不确定在哪里使用它。我有 auth.service.ts,其中包含 login()getToken()方法和 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()

相关内容

  • 没有找到相关文章

最新更新