Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
BrowserAuthErrors
Etkileşim_devam_ediyor
Hata İletisi: Etkileşim şu anda devam ediyor. Lütfen etkileşimli bir API çağırmadan önce bu etkileşimin tamamlandığından emin olun.
Bu hata, başka bir etkileşimli API sürmekteyken etkileşimli bir API (loginPopup, loginRedirect, acquireTokenPopup, acquireTokenRedirect) çağrıldığında oluşur. login ve acquireToken API'leri eşzamansızdır; bu nedenle, bir diğerini çağırmadan önce dönen promise'ların çözümlendiğinden emin olmanız gerekir.
@azure/msal-angular içinde bunun gerçekleşebileceği 2 yaygın senaryo vardır:
- Uygulamanız yeniden yönlendirmeleri doğru şekilde işlemiyor. Hata daha sonra uygulama veya kullanıcı etkileşimli bir API çağırmaya çalıştığında oluşur.
- Uygulamanız, önce etkileşimin başka bir yerde devam ediyor olup olmadığını denetlemeden yukarıdaki API'lerden birini çağırıyor.
Yeniden yönlendirmeler, MsalRedirectComponent ile veya handleRedirectObservable() çağrılarak ele alınmalıdır. Bu iki yaklaşımdan herhangi biriyle yeniden yönlendirmelerin açıkça işlenmemesi yukarıdaki hataya neden olur. Her iki yaklaşım hakkında daha fazla bilgi için yönlendirmeler hakkındaki belgelerimize buradan bakın.
Ayrıca, her türlü etkileşim, inProgress$ gözlemlenebilirine abone olduktan ve InteractionStatus.None için filtreleme yaptıktan sonra gerçekleştirilmelidir. Başka bir etkileşim devam ederken etkileşim denenmesi desteklenmez ve yukarıdaki hataya neden olur. Bunun gerçekleşmemesini sağlamanın yolu, InteractionStatus.None denetlemektir. Daha fazla ayrıntı için lütfen olay belgemize bakın.
Bu hata hakkında daha fazla bilgi için lütfen hata belgesine bakın.@azure/msal-browser
❌ Aşağıdaki örnek, başka bir bileşen devam eden etkileşimli bir API'yi zaten çağırdığında bu hatayı oluşturur:
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();
}
✔️ Önceki örneği düzeltmek için, çağırmadan loginRedirectönce devam eden başka bir etkileşim olup olmadığını denetleyin:
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();
})
}
Sorun Giderme Adımları
- Ayrıntılı günlük kaydını etkinleştirin ve olayların sırasını takip edin. Başka bir API çağrısı sonuçlanmadan önce etkileşimli bir API'nin çağrılmadığını doğrulayın.
- Yeniden yönlendirme akışını kullanıyorsanız,
MsalRedirectComponetöğesinin doğru şekilde önyüklendiğinden veya yeniden yönlendirilebilecek her sayfadahandleRedirectObservableöğesinin çağrıldığından emin olun.
Bu hatanın neden oluştuğunun nedenini bulamıyorsanız lütfen bir sorun açın ve aşağıdaki bilgileri paylaşmaya hazır olun:
- Ayrıntılı günlükler
- Sorunu yeniden oluşturmak için kullanabileceğimiz örnek bir uygulama ve/veya kod parçacıkları
- Sayfayı yenileyin. Hata gider mi?
- Uygulamanızı yeni bir sekmede açın. Hata gider mi?