Conversion

Por que os logins com link mágico falham?

By Jake Luo · Published 26 de ago. de 2026

A maioria das falhas de link mágico não é culpa do seu usuário nem problema de entrega: alguma coisa abriu o link antes da pessoa. Scanners de segurança de e-mail, bots de pré-visualização e o pré-carregamento da caixa de entrada seguem cada URL da mensagem poucos segundos depois da entrega, e se o seu token morre no primeiro uso, essa requisição automática o gasta — então o clique real cai em "este link já foi usado". A correção é deixar que a vida do link termine pela expiração, não pela primeira abertura, e sempre manter uma segunda porta de entrada.

A falha que parece erro do usuário

O sintoma é sempre o mesmo e sempre confunde. Alguém pede um link de acesso, o link chega, a pessoa clica e o seu app diz que ele é inválido ou já foi usado. Nada nos seus logs parece quebrado: o e-mail foi aceito, o token foi criado e o token foi verificado. Foi verificado — só que não pela pessoa para quem você enviou. Entre o seu envio e o clique dela existe uma fila de máquinas lendo aquela mensagem: o produto de segurança de e-mail do destinatário reescrevendo e seguindo links para checá-los, o cliente de e-mail pré-carregando para a prévia aparecer na hora, gateways corporativos detonando URLs em um ambiente isolado e, às vezes, um filtro fazendo o mesmo na entrada.

Isso aconteceu no nosso próprio fluxo de cadastro em produção em agosto de 2026, e vale repetir o formato porque não parecia nada. Um cadastro pediu três links em uma única sessão. Os três foram verificados no servidor entre 16 e 23 segundos após o envio — rápido demais para ser alguém lendo a caixa de entrada — e todo clique humano depois disso foi recusado como link já usado. A pessoa só entrou recomeçando por um login social. Dois hábitos comuns pioram tudo e produzem a mesma linha de log: pede-se o link no celular e abre-se no notebook, e encaminha-se o e-mail de acesso para um colega ou para o próprio segundo endereço. Se o seu desenho assume que a primeira requisição do token vem do navegador da pessoa, os três casos são lidos como ataque quando são o comportamento normal.

Descubra qual é o seu caso

Antes de mudar qualquer coisa, descubra o que realmente gastou o token. O horário entrega o culpado: um scanner ou um pré-carregamento chega poucos segundos depois do envio, enquanto uma pessoa leva dezenas de segundos a minutos. Registre horário, user agent e IP de cada verificação ao lado do horário do envio e leia os dois juntos.

O que você vêCausa provávelComo confirmar
Verificado segundos após o envio e o clique humano recusadoUm scanner de segurança de e-mail ou um pré-carregamento abriu primeiroCompare o horário da verificação com o do envio e veja se o user agent e o IP pertencem a um provedor de e-mail em vez de a um navegador
Falha só para as pessoas de uma empresaO gateway de e-mail daquela empresa reescreve e detona os linksPeça ao usuário que cole o link de volta e procure um domínio reescrito nele
Pedido no celular, falha no notebookO token está preso à sessão do navegador que o pediuPercorra o fluxo você mesmo em dois aparelhos antes de culpar outra coisa
Falha só depois de um intervalo longo, sem verificação precoceO link expirou mesmo — em geral vida curta somada a uma caixa lentaMeça o intervalo entre envio e clique contra a sua própria janela de expiração
Nunca chegaUm problema de entregabilidade, não de tokenConfira antes os retornos, a colocação em spam e os registros de autenticação do seu domínio de envio

A correção, na ordem que importa

A ordem sustenta tudo, porque dois destes passos são seguros sozinhos e perigosos na sequência errada.

  1. Verifique a expiração antes de consumir Um token expirado nunca pode abrir uma sessão, mude o que mudar. Colocar a checagem de expiração primeiro é o que torna o passo seguinte seguro — sem ela, tolerar uma abertura repetida esticaria a vida do link em vez de apenas sobreviver a uma visita a mais.
  2. Deixe um link não expirado ser aberto mais de uma vez Aceite um token já verificado que ainda esteja dentro da validade e devolva um sinal dizendo isso, em vez de um erro. Um link deve morrer quando expira, não quando a primeira máquina o toca.
  3. Preserve o primeiro horário de verificação Ao aceitar uma abertura repetida, não sobrescreva o horário de consumo original. Ele é o único registro de qual visita realmente venceu, e é a primeira coisa que você vai querer na próxima vez que alguém relatar isso.
  4. Encurte a janela em vez de estreitar as aberturas Um link de vida curta que tolera várias visitas é mais seguro na prática do que um de vida longa que morre no primeiro toque. É a vida curta que faz o trabalho de segurança; o uso único sempre foi apenas um substituto dela.
  5. Sempre deixe uma segunda porta Ofereça outro jeito de entrar — uma senha, uma passkey ou um login social — e mostre-o na própria tela de erro, não a três cliques dali. O cadastro que perdemos para isso se recuperou por um login social; sem essa porta, teria sumido na soleira.
  6. Diga algo útil quando falhar "Link inválido" avisa a pessoa de que ela errou. "Este link expirou — aqui está um novo", com um reenvio de um toque na mesma tela, mantém a pessoa dentro do fluxo em vez de mandá-la para o seu suporte.

A parte que nunca aparece como bug

A falha de login é visível. O estrago na medição não é, e sobrevive ao bug. Se o seu evento de conversão de cadastro dispara na primeira requisição que chega ao endpoint de verificação, sempre que um scanner chegar antes a conversão vai andar em um redirecionamento que navegador nenhum executa. Foi exatamente o que aconteceu conosco: a marca de cadastro recém-criado viajou com a requisição do scanner, então a conversão de cadastro na plataforma de anúncios daquela pessoa nunca foi registrada. Quem der lances sobre esses dados está dando lances sobre um número a que faltam, em silêncio, algumas das conversões mais caras de conquistar.

O hábito que pega isso é chato e confiável: conte a sessão concluída, não o clique no link, e trate o intervalo entre "link pedido" e "sessão criada" como um passo próprio do funil. Se uma fatia real dos pedidos nunca vira sessão, nenhum trabalho de landing page resolve — é falha de mecanismo, não de persuasão. Veja como transformar visitantes do site em cadastros para o passo anterior e a taxa de ativação para o seguinte. Se o e-mail nem chega, a escada de autenticação de domínio em como escrever e-mails frios que não caem no spam vale igualmente para e-mail transacional. E se você ainda decide de onde enviá-lo, Notifuse é uma opção auto-hospedada.

FAQ

Por quanto tempo um link mágico deve valer?
Minutos, não horas. A vida curta é o que permite tolerar com segurança que o link seja aberto mais de uma vez, que é a correção de verdade. Links de uso único e vida longa dão o pior dos dois mundos: passam horas na caixa esperando ser escaneados e ainda assim quebram na primeira máquina que os toca.
Um link mágico deve ser de uso único?
Uso único é a unidade errada. O que você quer é um link de propósito único e vida curta: ele entra em exatamente uma conta e para de funcionar ao expirar. Encerrar a vida dele na primeira abertura assume que o navegador da pessoa chega primeiro, e muitas vezes o único que chega primeiro é um scanner.
Por que meus logs mostram o link verificado segundos depois do envio?
Porque uma máquina o leu. Produtos de segurança de e-mail seguem links para checá-los e clientes de e-mail os pré-carregam para montar a prévia, ambos poucos segundos após a entrega. Compare o horário da verificação com o do envio: qualquer coisa dentro de poucos segundos quase nunca é uma pessoa.
Isso é a mesma coisa que meus e-mails irem para o spam?
Não, e separar os dois evita que você conserte a coisa errada. Cair no spam significa que o e-mail nunca chegou à caixa; isto significa que chegou e o leitor errado abriu. Cheque retornos e colocação primeiro. Se o e-mail está chegando, a pergunta passa a ser quem verificou o token.
Isso afeta minha análise de cadastros?
Pode afetar bastante. Se a sua conversão de cadastro dispara na primeira requisição ao endpoint de verificação, a requisição de um scanner pode levá-la junto, de modo que a conversão é atribuída a um redirecionamento que navegador nenhum executa ou se perde por completo. Dispare eventos de conversão na sessão criada e o problema some também dos seus relatórios.
Related questions
Como transformo visitantes do site em cadastros?Como posso melhorar o onboarding de usuários do meu SaaS?Como escrevo cold emails que não são marcados como spam?

Want this done for you?

AgentCeres is a managed AI marketing team — specialists draft the work, you approve what ships. 14-day free trial, from $39/month.

Start free trialMore answers