Как настроить конфигурацию аутентификации с помощью веб-службы в Spartacus версии 4?

#spartacus-storefront

Вопрос:

Я добавил конфигурацию аутентификации во время выполнения, и она настроена правильно, но по какой-то причине не использует эти значения конфигурации.

Вот что я сделал:

  1. Я ввел значения конфигурации с помощью поставщиков в своем модуле:

auth-config.module.ts

 import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { AuthConfig, ConfigModule, CONFIG_INITIALIZER } from "@spartacus/core"; import { Auth0ConfigInitializer } from './auth0-config-initializer/auth0-config-initializer';   export const defaultAuthConfig: AuthConfig = {  authentication: {  client_id: 'override_me_please',  client_secret: 'override_me_please',  tokenEndpoint: '/oauth/token',  loginUrl: '/authorize',  OAuthLibConfig: {  scope: 'openid profile email',  responseType: 'code',  disablePKCE: false,  useHttpBasicAuth: true,  redirectUri: window.location.href  },  }, };   @NgModule({  declarations: [  ],  imports: [  CommonModule,  ConfigModule.withConfig(defaultAuthConfig)  ],  providers: [  {  provide: CONFIG_INITIALIZER,  useExisting: Auth0ConfigInitializer,  multi: true,  },  ], }) export class AuthConfigModule { }  
  1. разрешите конфигурацию, вызвав веб-службу в Auth0ConfigInitializer

auth0-конфигурация-инициализатор.ts

 import { Injectable } from '@angular/core'; import { ConfigInitializer, AuthConfig, ConfigInitializerService, OccEndpointsService } from '@spartacus/core'; import { Observable, throwError } from 'rxjs'; import { take, map, catchError } from 'rxjs/operators'; import { ResourceService, AuthOccResponse } from 'src/app/shared/resource-service';  // set the Auth0 config dynamically @Injectable({ providedIn: 'root' }) export class Auth0ConfigInitializer implements ConfigInitializer {   // declare config keys that you will resolve  readonly scopes = [  'authentication.client_id',   'authentication.client_secret',   'authentication.baseUrl',   'authentication.logoutUrl',   'authentication.OAuthLibConfig.customQueryParams.audience'  ];  readonly configFactory = () =gt; this.resolveConfig().toPromise();   constructor(protected configInit: ConfigInitializerService, protected resourceService: ResourceService, protected occEndpoints: OccEndpointsService) {}   // resolve config values using getAuthConfig() web service   protected resolveConfig(): Observablelt;AuthConfiggt; {  return this.resourceService.getAuthConfig().pipe(  take(1),  map((resp: AuthOccResponse) =gt; {  return {  authentication: {  client_id: resp.clientId,  client_secret: resp.clientSecret,  baseUrl: resp.baseUrl,  logoutUrl: '/v2/logout',  OAuthLibConfig: {  customQueryParams: {  audience: resp.baseUrl '/api/v2/'  },  redirectUri: window.location.origin  }  }  };  }  ),  catchError( err =gt; {  console.log("Error getting Auth0 config from API", err);  return throwError(err);  })  )  } }   
  1. Когда я веду журнал консоли, я вижу, что конфигурация аутентификации была перезаписана правильно. Однако, когда я нажимаю «Войти», он все еще использует старые значения конфигурации.

Не мог бы кто-нибудь, пожалуйста, объяснить, как правильно его вводить?

Спасибо