Componente de logon no Microsoft Graph Toolkit

Cuidado

O Microsoft Graph Toolkit foi preterido. O período de aposentadoria começa em 1º de setembro de 2025, com aposentadoria total planejada para 28 de agosto de 2026. Os desenvolvedores devem migrar para o uso dos SDKs do Microsoft Graph ou outras ferramentas do Microsoft Graph com suporte para criar experiências na Web. Para obter mais informações, consulte o anúncio de substituição.

Um componente de Logon é um botão e um controle de submenu para facilitar a autenticação da plataforma de identidade da Microsoft. Ele fornece dois estados:

  • Quando o usuário não está conectado, o controle é um botão simples para iniciar o processo de entrada.
  • Quando o usuário estiver conectado, o controle exibirá o nome de usuário conectado atual, a imagem de perfil e o email. Quando clicado, um submenu é aberto com um comando para sair.

Você também pode permitir a entrada com várias contas. Isso lista todas as suas contas conectadas e oferece a opção de entrar com outras contas novas.

Exemplo

O exemplo a seguir mostra o mgt-login componente com um usuário conectado.

Usando o controle sem um provedor de autenticação

O componente funciona com um provedor e o Microsoft Graph prontos para uso. No entanto, se você quiser fornecer sua própria lógica e autenticação, poderá usar a userDetails propriedade para definir os detalhes do usuário conectado.

Atributo Propriedade Descrição
login-view loginView Determina o estilo de exibição a ser aplicado ao usuário conectado. As opções são 'full', 'compact', 'avatar', o padrão é 'full'
mostrar presença showPresence Determina se o indicador de presença do usuário atual no mgt-person controle é mostrado com um usuário autenticado. O padrão é false.
detalhes do usuário userDetails Permite definir os detalhes do objeto de usuário que o componente exibirá.

O exemplo a seguir define os detalhes da pessoa.

let loginControl = document.getElementById("myLoginControl");
loginControl.userDetails = {
  displayName: "Nikola Metulev",
  mail: "nikola@contoso.com",
  personImage: "url to the image",
};

A configuração userDetails de null vai para o estado de saída.

Propriedades personalizadas CSS

O mgt-login componente define as seguintes propriedades personalizadas CSS.

<mgt-login class="login"></mgt-login>
.login {
  --login-signed-out-button-background: red;
  --login-signed-out-button-hover-background: orange;
  --login-signed-out-button-text-color: purple;
  --login-signed-in-background: red;
  --login-signed-in-hover-background: green;
  --login-button-padding: 5px;
  --login-popup-background-color: blue;
  --login-popup-text-color: brown;
  --login-popup-command-button-background-color: orange;
  --login-popup-padding: 8px;
  --login-add-account-button-text-color: yellow;
  --login-add-account-button-background-color: red;
  --login-add-account-button-hover-background-color: purple;
  --login-command-button-background-color: orange;
  --login-command-button-hover-background-color: purple;
  --login-command-button-text-color: black;
  --login-person-avatar-size: 60px;

  /** person component tokens **/
  --person-line1-text-color: whitesmoke;
  --person-line2-text-color: white;
  --person-background-color: blue;
}

Para saber mais, consulte Componentes de estilo.

Eventos

Os eventos a seguir são disparados do controle.

Evento Quando é emitido Dados personalizados Cancelável Bolhas Funciona com modelo personalizado
loginInitiated O usuário clicou no botão de entrada para iniciar o processo de entrada Nenhum Sim Não Sim
loginCompleted O processo de logon foi bem-sucedido e o usuário agora está conectado Nenhum Não Não Sim
loginFailed O usuário cancelou o processo de logon ou não pôde entrar Nenhum Não Não Sim
logoutInitiated O usuário começou a fazer logoff Nenhum Sim Não Sim
logoutCompleted O usuário saiu Nenhum Não Não Sim

Use os eventos and logoutInitiated para lidar com a loginInitiated entrada e saída.

Para obter mais informações sobre como lidar com eventos, consulte eventos.

Modelos

O mgt-login componente suporta vários modelos que permitem substituir certas partes do componente. Para especificar um modelo, inclua um <template> elemento dentro de um componente e defina o data-type valor como um dos valores listados na tabela a seguir.

Tipo de dados Contexto de dados Descrição
conteúdo do botão conectado personDetails: person object, personImage: person image string O modelo usado para renderizar o conteúdo no botão quando o usuário está conectado.
Conteúdo do botão desconectado null O modelo usado para renderizar o conteúdo no botão quando o usuário não está conectado.
flyout-commands handleSignOut: função de saída O modelo usado para renderizar os comandos no submenu
flyout-person-details personDetails: person object, personImage: person image string O modelo usado para renderizar os detalhes da pessoa no submenu.

Permissões do Microsoft Graph

Este componente usa as seguintes APIs do Microsoft Graph. Para cada uma das solicitações de API, uma das permissões listadas é necessária.

Configuração Permissão API
Padrão. User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, Directory.Read.All, User.ReadWrite.All, Directory.ReadWrite.All /users/me/
Padrão. User.Read, User.ReadWrite, User.ReadBasic.All, User.Read.All, User.ReadWrite.All /users/eu//foto/$value

Subcomponentes

O mgt-login componente consiste em um ou mais subcomponentes que podem exigir outras permissões além das listadas anteriormente. Para obter mais informações, consulte a documentação de cada subcomponente: mgt-person.

Autenticação

O controle de logon usa o provedor de autenticação global descrito na documentação de autenticação.

Cache

Esse componente usa o componente Pessoa para exibir o usuário e herda todas as configurações de cache dele.

Estenda para mais controle

Para cenários mais complexos ou uma experiência de usuário verdadeiramente personalizada, esse componente expõe vários protected render* métodos de substituição em extensões de componente.

Método Descrição
renderButton Renderiza o botão chrome.
renderButtonContent Renderiza o conteúdo do botão.
renderSignedInButtonContent Renderize o conteúdo do botão quando o usuário estiver conectado.
renderSignedOutButtonContent Renderize o conteúdo do botão quando o usuário não estiver conectado.
renderFlyout Renderiza o cromo do submenu.
renderFlyoutContent Renderiza o conteúdo do submenu.
renderFlyoutPersonDetails Renderize os detalhes da pessoa do submenu.
renderFlyoutCommands Renderize os comandos do submenu.

Traga seu próprio submenu

É possível usar seu próprio componente de submenu no lugar do interno substituindo o renderFlyout() método e fornecendo o novo submenu.

Nesse caso, verifique se o componente de login continua funcionando conforme o esperado, substituindo os protected métodos de exibição de submenu para atualizar a visibilidade do submenu alternativo.

Método Descrição
hideFlyout Ignora o submenu.
mostrar o Flyout Exibe o submenu.
toggleFlyout Alterna o estado do submenu.

Localização

O controle expõe as variáveis a seguir que podem ser localizadas. Para obter detalhes, consulte Localização de componentes.

Nome da cadeia de caracteres Valor padrão
signInLinkSubtitle Sign In
signOutLinkSubtitle Sign Out
signInWithADifferentAccount Sign in with a different account