1

我正在使用 single-spa.js 库在同一系统中制作多个 Angular 应用程序。现在,我在每个应用程序的 app.module 中使用类似这样的代码的每个应用程序使用 httpInterceptor

  @NgModule({
   declarations: [
     // etc..

   ],
   imports: [
      BrowserModule,
      HttpClientModule,
      StoreModule.forRoot(reducers, {
         metaReducers,
      }),
      !environment.production ? StoreDevtoolsModule.instrument() : [],
      // etc...
   ],
   bootstrap: [
      AppComponent
   ],
   providers: [httpInterceptorProviders, DataService, FuseSplashScreenService, WindowRefService,
      AuthGuardService,
      AppInitService]
})
export class AppModule {

}

拦截器按预期正常工作,但有多个拦截器会导致线程安全问题,并导致令牌在请求之间混淆(来自 1 个应用程序的拦截器使用本地存储中的令牌并向服务器发送请求,当拦截器来自在第一个应用程序的响应更新本地存储中的令牌之前,应用程序 2 使用了相同的令牌。).. 导致来自 app2 请求的“无效令牌”服务器响应。

我的问题是,有没有办法在我的项目中跨多个应用程序使用一个 http 拦截器?

4

0 回答 0