Pular para o conteúdo principal

Convidar membros da organização

Em aplicativos multi-inquilinos, um requisito comum é convidar membros para uma organização. Este guia apresenta as etapas e detalhes técnicos para implementar esse recurso.

Visão geral do fluxo​

O processo geral é ilustrado no diagrama abaixo:

Criar papéis da organização​

Antes de convidar membros, crie papéis da organização. Veja o modelo de organização para saber mais sobre papéis e permissões.

Neste guia, vamos criar dois papéis típicos de organização: admin e member.

O papel admin tem acesso total a todos os recursos da organização, enquanto o papel member tem acesso limitado. Por exemplo:

  • Papel admin:
    • read:data - Acesso de leitura a todos os recursos de dados da organização.
    • write:data - Acesso de escrita a todos os recursos de dados da organização.
    • delete:data - Acesso de exclusão a todos os recursos de dados da organização.
    • invite:member - Convidar membros para a organização.
    • manage:member - Gerenciar membros na organização.
    • delete:member - Remover membros da organização.
  • Papel member:
    • read:data - Acesso de leitura a todos os recursos de dados da organização.
    • write:data - Acesso de escrita a todos os recursos de dados da organização.
    • invite:member - Convidar membros para a organização.

Isso pode ser feito facilmente no Logto Console. Você também pode usar o Logto Management API para criar papéis de organização programaticamente.

Configure seu conector de e-mail​

Como os convites são enviados por e-mail, certifique-se de que seu conector de e-mail está devidamente configurado. Para enviar convites, configure um modelo de e-mail com o tipo de uso OrganizationInvitation. Você pode incluir variáveis de organização (por exemplo, nome, logo) e do convidador (por exemplo, e-mail, nome) variáveis no conteúdo, e personalizar modelos localizados conforme necessário.

Um exemplo de modelo de e-mail para o tipo de uso OrganizationInvitation é mostrado abaixo:

{
"subject": "Você foi convidado para entrar em {{organization.name}}",
"content": "<p>Olá,</p><p>{{inviter.name}} ({{inviter.primaryEmail}}) convidou você para entrar em <strong>{{organization.name}}</strong>.</p><p>Clique neste <a href=\"{{link}}\" target=\"_blank\">link</a> para aceitar o convite e começar.</p><p>Se você não esperava este convite, pode ignorar este e-mail com segurança.</p>",
"usageType": "OrganizationInvitation",
"type": "text/html"
}

O espaço reservado {{link}} no conteúdo do e-mail será substituído pelo link real do convite quando o e-mail for enviado.

Gerenciar convites com Logto Management API​

nota:

Se você ainda não configurou o Logto Management API, veja Interaja com Management API para detalhes.

Criar um convite de organização com Logto Management API​

Há um conjunto de APIs de convite no recurso de organizações. Com essas APIs, você pode:

  • POST /api/organization-invitations: Criar um convite de organização com um papel atribuído.
  • POST /api/one-time-tokens: Criar um token de uso único para o convidado autenticar ao aceitar o convite. Saiba mais
  • POST /api/organization-invitations/{id}/message: Enviar o convite da organização para o convidado por e-mail.
nota:

O payload suporta uma propriedade link para que você possa compor seu próprio link de convite com base no ID do convite. Por exemplo:

{
"link": "https://your-app.com/invitation/join?id=your-invitation-id&token=your-one-time-token&email=invitee-email"
}