Msal-угловой : Как получить последнюю полезную нагрузку после редактирования профиля

#angular #msal-angular

Вопрос:

У меня возникла проблема с тем, как получить обновленную информацию о профиле пользователя. Прямо сейчас в chrome Проверьте : хранилище сеансов приложений показывает как информацию, старое имя, фамилию, так и обновленное имя, фамилию после редактирования профиля. Мой приведенный ниже скрипт извлекает старую информацию — имя и фамилию.

Какое событие я должен использовать для получения последней полезной нагрузки?

Я попробовал ниже событие, но не смог его извлечь.

// SSO_SILENT_SUCCESS

// ACQUIRE_TOKEN_SUCCESS

//HANDLE_REDIRECT_START

// SSO_SILENT_START

//ACQUIRE_TOKEN_START

// ACQUIRE_TOKEN_NETWORK_START

Соответствующие Фрагменты Кода

 this.msalBroadcastService.msalSubject$
  .subscribe((result: EventMessage) => {
    console.log(result);
    console.warn("Home component. LOgin Success");        
    const payload = result.payload as AuthenticationResu<

    localStorage.setItem('IdToken', payload.idToken);
    this.authService.instance.setActiveAccount(payload.account);
  });

  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.SSO_SILENT_SUCCESS)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. SSO_SILENT_SUCCESS");        
  });

  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_SUCCESS)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. ACQUIRE_TOKEN_SUCCESS");        
  });

  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.HANDLE_REDIRECT_START)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. HANDLE_REDIRECT_START");        
  });

  this.msalBroadcastService.msalSubject$
  .subscribe((result: EventMessage) => {
    console.warn("notification Remove Pipe");        
  });

  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.SSO_SILENT_START)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. SSO_SILENT_START");        
  });
  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_START)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. ACQUIRE_TOKEN_START");        
  });
  
  this.msalBroadcastService.msalSubject$
  .pipe(
    filter((msg: EventMessage) => msg.eventType === EventType.ACQUIRE_TOKEN_NETWORK_START)
  )
  .subscribe((result: EventMessage) => {
    console.warn("notification. ACQUIRE_TOKEN_NETWORK_START");        
  });
 

Пожалуйста, помогите.

Комментарии:

1. Вам вообще нужен фильтр?, вы уверены this._destroying$ , что он не «закрыт/мертв»?

2. Я пробовал без трубы и фильтра, но не сталкивался с такой областью применения. Смотреть ниже. this.msalBroadcastService.msalSubject$ .pipe( фильтр ((msg: EventMessage) => msg.Тип события === Тип события. LOGIN_SUCCESS) ) .подписаться((результат: сообщение о событии) => { console.log(результат); this.AuthService.instance.setActiveAccount(полезная нагрузка.учетная запись); }); this.msalBroadcastService.msalSubject$ .подписаться((результат: сообщение о событии) =>> { console.warn(«Удалить канал»); });

3. Все еще открытая проблема, заполните код здесь. github.com/AzureAD/microsoft-authentication-library-for-js/…