Autenticação com link mágico
Aprenda a implementar links mágicos para login sem senha, registro por convite apenas e convites para membros de organização usando tokens de uso único.
Aprenda a implementar links mágicos para login sem senha, registro por convite apenas e convites para membros de organização usando tokens de uso único.
Um link mágico é um método de autenticação sem senha onde o usuário recebe uma URL de login de uso único via e-mail (ou SMS). Ao clicar no link, o usuário é logado sem precisar de uma senha.
Aqui estão alguns recursos de segurança dos links mágicos:
Um link mágico consiste em:
Por exemplo, um link mágico pode parecer com isso:
Para criar um link mágico, você precisa gerar um token de uso único, enviá-lo com segurança ao usuário, e então validá-lo quando o usuário clicar no link.
Use o API de Gerenciamento Logto para criar um token de uso único.
Exemplo de carga útil do corpo da solicitação:
Depois de obter o token de uso único, você pode compor um link mágico e enviá-lo para o endereço de e-mail do usuário final. O link mágico deve conter pelo menos o token e o e-mail do usuário como parâmetros, e deve navegar até uma página de destino em seu próprio aplicativo. Por exemplo, 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. Você pode adicionar informações adicionais ao link mágico com base nas necessidades do seu aplicativo, bem como codificar todos os parâmetros da URL.
Depois que o usuário final clicar no link mágico e for redirecionado para seu aplicativo, você pode extrair os parâmetros token e email da URL, e então chamar a função signIn() do Logto SDK para disparar o fluxo de autenticação.
Para mais detalhes, verifique a Documentação 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 contornar a Autenticação Multifator (MFA).
No Logto, ao gerar um link mágico com um token de uso único, você não precisa especificar se é para login ou registro. Nós determinamos automaticamente o fluxo com base no status de registro do e-mail:
O Logto suporta os seguintes cenários com links mágicos:
Atualmente não suportado:
Informe-nos se você precisar de mais personalização.
Para novos produtos (por exemplo, ferramentas de IA) em teste interno ou para ferramentas internas, você pode querer desabilitar o registro público e permitir apenas usuários específicos no seu aplicativo. Para implementar isso com o Logto:
Vá para Console > Experiência de login > Login e registro > Opções avançadas e desative "Ativar registro de usuário" para fechar o registro público.

Colete os endereços de e-mail dos usuários que você deseja convidar (por exemplo, através do seu site ou recomendações de usuários existentes).
Crie e envie o link mágico de convite conforme descrito acima (solicitar token de uso único, compor o link mágico, disparar autenticação via Logto SDK).
Nota: Defina um tempo de expiração para o link de convite. Recomenda-se que o link seja válido por pelo menos um dia. Use o seguinte corpo de solicitação para gerar o token de uso único:
Envie o link mágico para o e-mail do usuário (por exemplo, https://yourapp.com/landing-page?type=registrationInvitation&token=YHwbXSXxQfL02IoxFqr1hGvkB13uTqcd&[email protected]). Personalize o modelo de e-mail, como:

Quando os usuários clicarem em "Aceitar o convite", eles se registrarão automaticamente no seu serviço, mesmo com o registro público desativado. Isso é chamado de "Convite de usuário direcionado".
Para produtos multi-locatários (por exemplo, aplicativos SaaS como Slack, GitHub, Vercel), forneça um processo de convite de membro sem interrupções para gerenciar associações de organização. Use links mágicos para taxas de conversão mais altas em convites de membros.
Siga a documentação do Logto para implementar a criação de organização, controle de acesso baseado em função de organização e gerenciamento de organização: Logto Organizações.
Configure o fluxo de trabalho "Convidar membros" no seu produto. Exemplo:

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

Quando os usuários clicarem em "Aceitar o convite", eles se conectarão ou se registrarão automaticamente e se juntarão à organização.
O que acontece se um usuário já estiver logado e clicar em outro link mágico?
Para lidar corretamente com conflitos de conta, certifique-se do seguinte:
login no "prompt de login": Não configure o prompt de login incluindo login nele. Se configurado incorretamente, o Logto fará automaticamente o login na conta associada ao token do link mágico, ignorando o prompt de alternância de conta.signIn(), especifique o parâmetro clearTokens: false para impedir que os tokens existentes sejam limpos. Se esta opção for usada, certifique-se de limpar tokens manualmente na página de retorno de chamada de login.Após a configuração adequada, a experiência do usuário será a seguinte:

Quando os usuários clicam em um link mágico inválido, eles serã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 não corresponde ao token fornecido. |
| token_expired | O token expirou. |
| 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 fornecerá uma mensagem específica, ajudando os usuários a entenderem o motivo do link mágico inválido e orientando-os sobre os próximos passos. Por exemplo:

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 de usuário suaves—seja para convidar usuários a se juntarem a uma organização, permitir que eles criem contas sem esforço, ou fornecer autenticação sem complicações. E porque o Logto lida com situações complicadas como conflitos de conta e tokens expirados, seus usuários têm um processo seguro e sem frustrações toda vez.
Pronto para modernizar seu IAM com autenticação à prova de balas?