Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
BrowserAuthErrors
Interação_em_andamento
Mensagem de erro: a interação está em andamento no momento. Verifique se essa interação foi concluída antes de chamar uma API interativa.
Esse erro é gerado quando uma API interativa (loginPopup, loginRedirect, , acquireTokenPopupacquireTokenRedirect) é invocada enquanto outra API interativa ainda está em andamento. As APIs de logon e acquireToken são assíncronas, portanto, você precisará garantir que as promessas resultantes tenham sido resolvidas antes de invocar outra.
Em @azure/msal-angular, há dois cenários comuns em que isso pode acontecer:
- Seu aplicativo não está tratando redirecionamentos corretamente. O erro ocorre quando o aplicativo ou o usuário tenta chamar uma API interativa.
- Seu aplicativo está chamando uma das APIs acima sem primeiro verificar se a interação já está em andamento em outro lugar.
Os redirecionamentos devem ser tratados com MsalRedirectComponent ou com a chamada de handleRedirectObservable(). Não lidar com redirecionamentos explicitamente com qualquer uma dessas duas abordagens resultará no erro acima. Consulte nossos documentos sobre redirecionamentos aqui para obter mais informações sobre ambas as abordagens.
Além disso, qualquer interação deve ser feita após a inscrição no observável inProgress$ e a filtragem por InteractionStatus.None. Não há suporte para a tentativa de interação enquanto outro está em andamento e resultará no erro acima. Verificar se há InteractionStatus.None é como você garante que isso não aconteça. Consulte nosso documento de eventos para obter mais detalhes.
Consulte o @azure/msal-browser documento de erro para obter mais informações sobre esse erro.
❌ O exemplo a seguir gerará esse erro quando outro componente já tiver invocado uma API interativa em andamento:
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();
}
✔️ Para corrigir o exemplo anterior, verifique se nenhuma outra interação está em andamento antes de invocar loginRedirect:
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();
})
}
Etapas de solução de problemas
- Habilite o log detalhado e rastreie a ordem dos eventos. Verifique se uma API interativa não é invocada antes que outra seja resolvida.
- Se estiver usando o fluxo de redirecionamento, verifique se
MsalRedirectComponetfoi inicializado corretamente ou sehandleRedirectObservableestá sendo chamado em todas as páginas para as quais o redirecionamento possa ocorrer.
Se você não conseguir descobrir por que esse erro está sendo gerado, abra um problema e esteja preparado para compartilhar as seguintes informações:
- Logs detalhados
- Um aplicativo de exemplo e/ou snippets de código que podemos usar para reproduzir o problema
- Atualize a página. O erro desaparece?
- Abra seu aplicativo em uma nova guia. O erro desaparece?