Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
BrowserAuthErrors
Interakció_folyamatban
Hibaüzenet: Az interakció jelenleg folyamatban van. Az interaktív API meghívása előtt győződjön meg arról, hogy ez az interakció befejeződött.
Ez a hiba akkor jelentkezik, ha egy interaktív API (loginPopup, loginRedirect, , acquireTokenPopupacquireTokenRedirect) meghívása közben egy másik interaktív API is folyamatban van. A bejelentkezési és a acquireToken API-k aszinkronok, ezért gondoskodnia kell arról, hogy az eredményül kapott ígéretek feloldódjanak egy másik meghívás előtt.
Ez @azure/msal-angular két gyakori forgatókönyv esetén fordulhat elő:
- Az alkalmazás nem megfelelően kezeli az átirányításokat. A hiba akkor fordul elő, ha az alkalmazás vagy a felhasználó interaktív API-t próbál meghívni.
- Az alkalmazás a fenti API-k egyikét hívja meg anélkül, hogy először ellenőrizned kell, hogy máshol már folyamatban van-e az interakció.
Az átirányításokat vagy a MsalRedirectComponent használatával, vagy a handleRedirectObservable() meghívásával kell kezelni. Ha nem kezeli explicit módon az átirányításokat e két módszer valamelyikével, akkor a fenti hiba jelenik meg. A két megközelítéssel kapcsolatos további információkért tekintse meg az átirányításokról szóló dokumentációnkat.
Emellett minden interakciót a inProgress$ observable-re való feliratkozás és a(z) InteractionStatus.None szerinti szűrés után kell végrehajtani. Egy interakció megkísérlése, miközben egy másik már folyamatban van, nem támogatott, és a fenti hibát eredményezi. A(z) InteractionStatus.None ellenőrzésével biztosíthatja, hogy ez ne történjen meg. További részletekért tekintse meg az eseményekkel kapcsolatos dokumentumunkat .
A hibával kapcsolatos további információkért tekintse meg a @azure/msal-browser hiba dokumentumát .
❌ Az alábbi példa akkor jelenik meg, ha egy másik összetevő már meghívott egy folyamatban lévő interaktív API-t:
import { Component, OnInit } from '@angular/core';
import { MsalService, MsalBroadcastService, InteractionStatus } from '@azure/msal-angular';
import { filter } from 'rxjs/operators';
@Component()
export class ExampleComponent implements OnInit {
constructor(
private msalBroadcastService: MsalBroadcastService,
private authService: MsalService
) {}
ngOnInit(): void {
this.authService.loginRedirect();
}
✔️ Az előző példa kijavításához ellenőrizze, hogy nincs-e folyamatban más interakció a meghívás loginRedirectelőtt:
import { Component, OnInit } from '@angular/core';
import { InteractionStatus } from '@azure/msal-browser';
import { MsalService, MsalBroadcastService } from '@azure/msal-angular';
import { filter } from 'rxjs/operators';
@Component()
export class ExampleComponent implements OnInit {
constructor(
private msalBroadcastService: MsalBroadcastService,
private authService: MsalService
) {}
ngOnInit(): void {
this.msalBroadcastService.inProgress$
.pipe(
filter((status: InteractionStatus) => status === InteractionStatus.None),
)
.subscribe(() => {
this.authService.loginRedirect();
})
}
Hibaelhárítási lépések
- Részletes naplózás engedélyezése és az események sorrendjének nyomon követése. Ellenőrizze, hogy ne hívják meg az interaktív API-t, mielőtt egy másik befejeződik.
- Ha az átirányítási folyamatot használja, győződjön meg arról, hogy
MsalRedirectComponetmegfelelően van elindítva, vagyhandleRedirectObservableminden olyan oldalon meghívja, amelyre átirányítható.
Ha nem tudja kitalálni, hogy miért jelenik meg ez a hiba, nyisson meg egy problémát , és készüljön fel a következő információk megosztására:
- Részletes naplók
- Mintaalkalmazás és/vagy kódrészletek, amelyekkel reprodukálhatjuk a problémát
- Frissítse az oldalt. Eltűnik a hiba?
- Nyissa meg az alkalmazást egy új lapon. Eltűnik a hiba?