如何在其他模块提供的拦截器之前从主app.module.ts运行拦截器

时间:2019-02-13 20:05:20

标签: angular http authentication angular5

我正在使用Angular 5.2。我有一个拦截器,用于拦截未经授权返回的响应,以便在需要时可以向用户显示登录屏幕,然后可以重试该请求。

根据提供者,我有:

{
    provide: HTTP_INTERCEPTORS,
    useClass: UnAuthorizedInterceptor,
    multi: true
}

我还使用BlockUIHttpModule,以便在大多数http请求期间阻止用户屏幕。

BlockUIHttpModule.forRoot({
    requestFilters: [BlockUIFilterFunction]
}),

我面临的挑战是,如果发送了HTTP请求并返回401并且凭据已过期,则请求未完成。显示登录屏幕。用户登录后,将重试并完成该请求。

但是,由于BlockUIHttpModule拦截器在UnAuthorizedInterceptor之前运行,因此BlockUI继续阻塞。我想在拦截器之后从BlockUIHttpModule运行拦截器。

如果有帮助,我愿意将angular更新到更高版本。我一直在寻找其他建议,但通常在提供程序中按顺序提供拦截器。

0 个答案:

没有答案