Componente de logon no Microsoft Graph Toolkit

Um componente Logon é um botão e um controle de sobrevoo para facilitar plataforma de identidade da Microsoft autenticação. 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 é conectado, o controle exibe o nome de usuário, a imagem de perfil e o email conectados atualmente. Quando clicado, um flyout é aberto com um comando para sair.

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

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 fora da caixa. 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
modo de exibição de logon Loginview Determina o estilo de exibição a ser aplicado ao usuário conectado. As opções são 'full', 'compact', 'avatar', defaults to 'full'
show-presence 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 do 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 para null vai para o estado de saída assinado.

Propriedades personalizadas do CSS

O mgt-login componente define as seguintes propriedades personalizadas do 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, confira componentes de estilo.

Eventos

Os eventos a seguir são disparados do controle.

Evento Quando ele é 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 logon 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 logon Nenhum Sim Não Sim
logoutCompleted O usuário saiu Nenhum Não Não Sim

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

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

Modelos

O mgt-login componente dá suporte a vários modelos que permitem substituir determinadas 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
signed-in-button-content personDetails: objeto person, personImage: cadeia de caracteres de imagem de pessoa O modelo usado para renderizar o conteúdo no botão quando o usuário está conectado.
signed-out-button-content null O modelo usado para renderizar o conteúdo no botão quando o usuário não está conectado.
comandos de flyout handleSignOut: função de saída O modelo usado para renderizar os comandos no flyout
flyout-person-details personDetails: objeto personImage: cadeia de caracteres de imagem de pessoa O modelo usado para renderizar os detalhes da pessoa no flyout.

Permissões do Microsoft Graph

Esse 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/me//photo/$value

Subcomponentes

O mgt-login componente consiste em um ou mais subcomponentes que podem exigir outras permissões do que as listadas anteriormente. Para obter mais informações, confira 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 Person para exibir o usuário e herda toda a configuração de cache dele.

Estender para obter mais controle

Para cenários mais complexos ou uma UX 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 cromado.
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 cromado de flyout.
renderFlyoutContent Renderiza o conteúdo do flyout.
renderFlyoutPersonDetails Renderize os detalhes da pessoa de sobrevoo.
renderFlyoutCommands Renderize os comandos de flyout.

Traga seu próprio flyout

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

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

Método Descrição
hideFlyout Descarta o sobrevoo.
showFlyout Exibe o flyout.
toggleFlyout Alterna o estado do flyout.

Localização

O controle expõe as variáveis a seguir que podem ser localizadas. Para obter detalhes, confira Localizando componentes.

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