#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/…