Autenticação por link mágico
Aprenda a implementar links mágicos para acesso sem senha, registo apenas por convite, e convites para membros de organizações usando tokens de uso único.
Aprenda a implementar links mágicos para acesso sem senha, registo apenas por convite, e convites para membros de organizações usando tokens de uso único.
Um link mágico é um método de autenticação sem senha onde o utilizador recebe um URL de login de uso único por email (ou SMS). Ao clicar no link, é efetuado o login sem a necessidade de uma senha.
Aqui estão algumas características de segurança importantes dos links mágicos:
Um link mágico consiste em:
Por exemplo, um link mágico pode ser algo assim:
Para criar um link mágico, precisa gerar um token de uso único, enviá-lo com segurança ao utilizador e depois validá-lo quando o utilizador clicar no link.
Use a API de Gestão do Logto para criar um token de uso único.
Exemplo de payload do corpo da requisição:
Depois de obter o token de uso único, pode compor um link mágico e enviá-lo para o email do utilizador final. O link mágico deve conter pelo menos o token e o email do utilizador como parâmetros e deve navegar para uma página de destino na sua própria aplicação. Ex.: https://yourapp.com/landing-page.
Aqui está um exemplo simples de como o link mágico pode parecer:
Nota:
Os nomes dos parâmetros no link mágico podem ser totalmente personalizados. Pode adicionar informações adicionais ao link mágico com base nos requisitos da sua aplicação, bem como codificar todos os parâmetros do URL.
Depois que o utilizador final clica no link mágico e é redirecionado para a sua aplicação, pode extrair os parâmetros token e email do URL e então chamar a função signIn() do Logto SDK para acionar o fluxo de autenticação.
Para mais detalhes, consulte os Documentos Logto - Link Mágico (Token de Uso Único).
Links mágicos podem substituir a etapa de autenticação de primeiro fator, mas não podem substituir a Autenticação de Múltiplos Fatores (MFA).
No Logto, ao gerar um link mágico com um token de uso único, não precisa especificar se é para login ou registro. Determinamos automaticamente o fluxo com base no status de registo do email:
O Logto suporta os seguintes cenários com links mágicos:
Atualmente não suportado:
Deixe-nos saber se precisar de personalizações adicionais.
Para novos produtos (por exemplo, ferramentas de IA) em teste interno ou para ferramentas internas, pode querer desativar o registo público e permitir apenas que utilizadores específicos acedam à sua aplicação. Para implementar isto com Logto:
Acesse Consola > Experiência de Login > Login e registo > Opções avançadas, e desative "Ativar registo de utilizador" para fechar o registo público.

Colete os endereços de email dos utilizadores que deseja convidar (por exemplo, pelo seu website ou recomendações de utilizadores existentes).
Crie e envie o link de convite mágico conforme descrito acima (solicite o token de uso único, componha o link mágico, acione a autenticação via Logto SDK).
Nota: Defina um tempo de expiração para o link de convite. Recomenda-se tornar o link válido por pelo menos um dia. Use o seguinte corpo de requisição para gerar o token de uso único:
Envie o link mágico para o email do utilizador (por exemplo, https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalize o modelo de email, como:

Quando os utilizadores clicarem em "Aceitar o convite", eles automaticamente se registam no seu serviço, mesmo com o registo público desativado. Isto é referido como "Convite de utilizador direcionado".
Para produtos multiinquilino (por exemplo, aplicações SaaS como Slack, GitHub, Vercel), fornecer um processo de convite de membros sem complicações para gerenciar associações de organizações. Use links mágicos para uma maior taxa de conversão em convites de membros.
Siga os documentos Logto para implementar criação de organização, controle de acesso baseado em funções de organização, e gerenciamento de organizações: Logto Organizações.
Configure o fluxo "Convidar membros" no seu produto. Exemplo:

Siga este guia para Convidar Membros de Organização. Nota: Ao convidar membros, certifique-se que o pedido inclua:
context: jitOrganizationIds para especificar a quais organizações o utilizador se juntará.expiresIn mais longo (por exemplo, 2 dias ou 1 semana) para permitir tempo suficiente para os utilizadores aceitarem o convite.Exemplo de payload do pedido:
Envie o link de convite para o email do utilizador (por exemplo, https://yourapp.com/landing-page?type=organizationMemberInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalize seu modelo de email, por exemplo:

Quando os utilizadores clicarem em "Aceitar o convite", eles irão automaticamente fazer login ou registo e automaticamente ingressar na organização.
O que acontece se um utilizador já está autenticado e clica em outro link mágico?
Para lidar corretamente com conflitos de conta, garanta o seguinte:
login no "prompt de login": Não defina o prompt de login incluindo login. Se definido incorretamente, o Logto autentica automaticamente a conta associada ao token do link mágico, ignorando o prompt de troca de conta.signIn(), especifique o parâmetro clearTokens: false para evitar limpar tokens existentes. Se esta opção for usada, garanta que limpa manualmente os tokens na página de retorno de login.Após a configuração correta, a experiência do utilizador será a seguinte:

Quando os utilizadores clicam num link mágico inválido, são redirecionados para uma página de erro com uma explicação clara do problema. Abaixo estão os possíveis cenários de erro e suas mensagens:
| Nome | Descrição |
|---|---|
| token_not_found | Token ativo não encontrado com o email e token fornecidos. |
| email_mismatch | Email incompatível com o token fornecido. |
| token_expired | O token está expirado. |
| token_consumed | O token foi consumido. |
| token_revoked | O token foi revogado. |
| cannot_reactivate_token | Não é possível reativar o token. |
Cada página de erro apresentará uma mensagem específica, ajudando os utilizadores a entender o motivo por trás do link mágico inválido e orientando-os sobre os próximos passos. Por exemplo:

O Logto oferece segurança de nível empresarial através de fluxos de login sem senha flexíveis usando links mágicos. É uma maneira simples mas poderosa de criar experiências suaves para os utilizadores — sejam convidados para se juntarem a uma organização, permitindo-lhes criar contas sem esforço ou fornecendo autenticação sem complicações. E porque o Logto lida com situações complicadas como conflitos de conta e tokens expirados, seus utilizadores têm um processo seguro e livre de frustrações a cada vez.
Pronto para modernizar seu IAM com autenticação à prova de bala?