Como fazer o log no MSAL.js

Este artigo fornece uma visão geral dos diferentes tipos de erros e recomendações para lidar com erros comuns de entrada.

Noções básicas sobre o tratamento de erros do MSAL

As exceções no Biblioteca do Microsoft Authenticator (MSAL) destinam-se aos desenvolvedores de aplicativos a solucionar problemas, não para exibição para usuários finais. As mensagens de exceção não são localizadas.

Ao processar exceções e erros, você pode usar o tipo de exceção em si e o código de erro para distinguir entre exceções. Para obter uma lista de códigos de erro, consulte Microsoft Entra códigos de erro de autenticação e autorização.

Durante a experiência de entrada, você pode encontrar erros sobre consentimentos, MFA (Acesso Condicional, Gerenciamento de Dispositivos, restrições baseadas em local), emissão e resgate de token e propriedades do usuário.

A seção a seguir fornece mais detalhes sobre o tratamento de erros para seu aplicativo.

Configurar o registro em log no MSAL.js

Habilite o registro em MSAL.js (JavaScript) passando um objeto loggerOptions durante a configuração para criar uma instância PublicClientApplication. O único parâmetro de configuração necessário é a ID do cliente do aplicativo. Todo o resto é opcional, mas pode ser necessário dependendo do seu locatário e modelo de aplicativo.

O objeto loggerOptions tem as seguintes propriedades:

  • loggerCallback: uma função de callback que pode ser fornecida pelo desenvolvedor para processar o registro em log das mensagens do MSAL de maneira personalizada. Implemente a função loggerCallback de acordo com a forma como você deseja redirecionar os registros. A função loggerCallback tem o seguinte formato (level: LogLevel, message: string, containsPii: boolean): void
    • Os níveis de log com suporte são: Error, Warning, e InfoVerbose. O padrão é Info.
  • piiLoggingEnabled (opcional): se definido como true, registra dados pessoais e organizacionais. Por padrão, isso é falso para que seu aplicativo não registre dados pessoais. Os logs de dados pessoais nunca são gravados em saídas padrão, como Console, Logcat ou NSLog.
import msal from "@azure/msal-browser"

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        redirectUri: "enter_redirect_uri_here",
        postLogoutRedirectUri: "enter_postlogout_uri_here",
        navigateToLoginRequestUrl: true,
        clientCapabilities: ["CP1"]
    },
    cache: {
        cacheLocation: "sessionStorage",
        storeAuthStateInCookie: false,
        secureCookies: false
    },
    system: {
        loggerOptions: {
            logLevel: msal.LogLevel.Verbose,
            loggerCallback: (level, message, containsPii) => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case msal.LogLevel.Error:
                        console.error(message);
                        return;
                    case msal.LogLevel.Info:
                        console.info(message);
                        return;
                    case msal.LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case msal.LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false
        },
    },
};

Próximas Etapas 

Para obter mais exemplos de código, consulte exemplos de código da plataforma de identidade da Microsoft.