Compartilhar via


Componente de início de sessão no Microsoft Graph Toolkit

Cuidado

O Toolkit do Microsoft Graph foi preterido. O período de reforma começa a 1 de setembro de 2025, com a reforma completa prevista para 28 de agosto de 2026. Os programadores devem migrar para utilizar os SDKs do Microsoft Graph ou outras ferramentas suportadas do Microsoft Graph para criar experiências Web. Para obter mais informações, veja o anúncio de preterição.

Um componente de Início de Sessão é um botão e um controlo de lista de opções para facilitar plataforma de identidade da Microsoft autenticação. Fornece dois estados:

  • Quando o utilizador não tem sessão iniciada, o controlo é um botão simples para iniciar o processo de início de sessão.
  • Quando o utilizador tem sessão iniciada, o controlo apresenta o nome de utilizador, a imagem de perfil e o e-mail com sessão iniciada atual. Quando clicado, é aberta uma lista de opções com um comando para terminar sessão.

Também pode permitir o início de sessão com várias contas. Esta ação lista todas as suas contas com sessão iniciada e dá-lhe uma opção para iniciar sessão com outras contas novas.

Exemplo

O exemplo seguinte mostra o mgt-login componente com um utilizador com sessão iniciada.

Utilizar o controlo sem um fornecedor de autenticação

O componente funciona com um fornecedor e o Microsoft Graph fora da caixa. No entanto, se quiser fornecer a sua própria lógica e autenticação, pode utilizar a userDetails propriedade para definir os detalhes do utilizador com sessão iniciada.

Atributo Propriedade Descrição
login-view loginView Determina o estilo de vista a aplicar ao utilizador com sessão iniciada. As opções são "completas", "compactas", "avatar", predefinidas para "full"
mostrar presença showPresence Determina se o indicador de presença do utilizador atual no mgt-person controlo é apresentado com um utilizador autenticado. O padrão é false.
detalhes do utilizador userDetails Permite definir os detalhes do objeto de utilizador que o componente irá apresentar.

O exemplo seguinte 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 definição userDetails para null passa para o estado de sessão terminada.

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, veja Componentes de estilo.

Eventos

Os seguintes eventos são acionados a partir do controlo.

Evento Quando é emitido Dados personalizados Cancelável Bolhas Funciona com um modelo personalizado
loginInitiated O utilizador clicou no botão de início de sessão para iniciar o processo de início de sessão Nenhum Sim Não Sim
loginCompleted O processo de início de sessão foi bem-sucedido e o utilizador tem agora sessão iniciada Nenhum Não Não Sim
loginFailed O utilizador cancelou o processo de início de sessão ou não conseguiu iniciar sessão Nenhum Não Não Sim
logoutInitiated O utilizador começou a terminar sessão Nenhum Sim Não Sim
logoutCompleted O utilizador termina sessão Nenhum Não Não Sim

Utilize os loginInitiated eventos e logoutInitiated para processar o início e a saída.

Para obter mais informações sobre o processamento de eventos, veja eventos.

Modelos

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

Tipo de dados Contexto de dados Descrição
signed-in-button-content personDetails: objeto de pessoa, personImage: cadeia de imagem de pessoa O modelo utilizado para compor o conteúdo no botão quando o utilizador tem sessão iniciada.
signed-out-button-content null O modelo utilizado para compor o conteúdo no botão quando o utilizador não tem sessão iniciada.
comandos de lista de opções handleSignOut: função de terminar sessão O modelo utilizado para compor os comandos na lista de opções
flyout-person-details personDetails: objeto de pessoa, personImage: cadeia de imagem de pessoa O modelo utilizado para compor os detalhes da pessoa na lista de opções.

Permissões do Microsoft Graph

Este componente utiliza as seguintes APIs do Microsoft Graph. Para cada um dos pedidos de API, é necessária uma das permissões listadas.

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 é composto por um ou mais subcomponentes que podem exigir outras permissões do que as listadas anteriormente. Para obter mais informações, consulte a documentação para cada subcomponente: mgt-person.

Autenticação

O controlo de início de sessão utiliza o fornecedor de autenticação global descrito na documentação de autenticação.

Cache

Este componente utiliza o componente Pessoa para apresentar o utilizador e herda toda a configuração da cache do mesmo.

Expandir para obter mais controlo

Para cenários mais complexos ou um UX verdadeiramente personalizado, este componente expõe vários protected render* métodos de substituição em extensões de componentes.

Método Descrição
renderButton Compõe o cromado do botão.
renderButtonContent Compõe o conteúdo do botão.
renderSignedInButtonContent Compor o conteúdo do botão quando o utilizador tiver sessão iniciada.
renderSignedOutButtonContent Compor o conteúdo do botão quando o utilizador não tiver sessão iniciada.
renderFlyout Compõe o cromado de lista de opções.
renderFlyoutContent Compõe o conteúdo da lista de opções.
renderFlyoutPersonDetails Componte os detalhes da pessoa da lista de opções.
renderFlyoutCommands Componione os comandos de lista de opções.

Traga a sua própria lista de opções

É possível utilizar o seu próprio componente de lista de opções em vez do incorporado, substituindo o renderFlyout() método e fornecendo a nova lista de opções.

Neste caso, certifique-se de que o componente de início de sessão continua a funcionar conforme esperado ao substituir os protected métodos de apresentação de lista de opções para atualizar a visibilidade da sua lista de opções alternativa.

Método Descrição
hideFlyout Dispensa a lista de opções.
showFlyout Apresenta a lista de opções.
toggleFlyout Ativa/desativa o estado da lista de opções.

Localização

O controlo expõe as seguintes variáveis que podem ser localizadas. Para obter detalhes, veja Localizar componentes.

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