Como criar recuperação de senha na Lovable com Supabase Auth

Veja como criar o fluxo de recuperação de senha na Lovable com Supabase Auth, configurar redirect URL, redefinir a senha e corrigir os erros mais comuns.

Por Guilherme Carvalho - LovAcademyAtualizado em 09 de outubro de 20268 min de leitura
Como criar recuperação de senha na Lovable com Supabase Auth

Resposta rápida: para criar recuperação de senha em um app Lovable conectado ao Supabase, você precisa de três peças: uma tela onde o usuário informa o e-mail, o envio do link de recuperação pelo Supabase Auth e uma rota do seu app que recebe o usuário de volta e permite definir uma nova senha. O ponto que mais causa erro é a URL de redirecionamento não estar autorizada no Supabase.

Esse fluxo é diferente de simplesmente criar login e cadastro. Na recuperação, o usuário já existe, perdeu a senha e precisa provar acesso ao e-mail cadastrado. O Supabase envia um link temporário, o app recupera a sessão de recuperação e só então permite trocar a senha.

Como funciona a recuperação de senha na Lovable

A integração oficial Lovable + Supabase inclui autenticação por e-mail e senha e permite construir páginas de acesso ligadas ao Supabase Auth. Para recuperação de senha, a interface criada na Lovable chama o método de recuperação do Supabase informando o e-mail e a URL para onde o usuário deve voltar depois de clicar no link.

Depois que o usuário abre o e-mail, o Supabase valida o token e redireciona para a rota definida. Nessa rota, o app exibe um formulário para a nova senha e atualiza a credencial do usuário autenticado naquele fluxo.

Fluxo completo

Usuário clica em “Esqueci minha senha”
   ↓
Informa o e-mail cadastrado
   ↓
Supabase Auth envia o link
   ↓
Usuário abre o e-mail
   ↓
App Lovable recebe a sessão de recuperação
   ↓
Usuário define nova senha
   ↓
Senha atualizada e login liberado

Passo a passo para implementar

1. Crie a ação “Esqueci minha senha”

Na tela de login, adicione um link visível para quem não consegue entrar. Esse link deve abrir uma página simples com campo de e-mail, botão para enviar recuperação e mensagens claras de sucesso ou erro. Evite misturar esse formulário com o cadastro para não confundir estados diferentes de autenticação.

2. Envie o e-mail de recuperação pelo Supabase Auth

Ao enviar o formulário, use a recuperação de senha do Supabase e informe uma URL de redirecionamento do seu próprio app. Em produção, essa URL precisa usar o domínio real publicado. Durante desenvolvimento, você pode ter uma URL de teste separada, mas ela também precisa estar autorizada nas configurações de autenticação.

await supabase.auth.resetPasswordForEmail(email, {
  redirectTo: "https://seu-dominio.com/redefinir-senha"
})

3. Autorize a URL de redirecionamento

No Supabase, abra Authentication e revise as configurações de URL. A rota usada no redirectTo precisa estar entre as URLs aceitas. Se o link do e-mail abre o app, mas a recuperação não continua, esse é um dos primeiros pontos a conferir.

Quando você usa domínio personalizado na Lovable, lembre de atualizar essa configuração. Um projeto que funcionava no subdomínio lovable.app pode falhar depois de trocar para um domínio próprio se a nova URL não estiver autorizada.

4. Crie a página de redefinição de senha

A rota de redefinição deve ser dedicada ao processo. Exiba campos de nova senha e confirmação, aplique os mesmos requisitos de segurança usados no cadastro e bloqueie o envio se os dois valores forem diferentes. Depois da atualização, mostre uma confirmação e direcione o usuário para a área autenticada ou para o login.

const { error } = await supabase.auth.updateUser({
  password: novaSenha
})

if (error) {
  // mostre uma mensagem segura ao usuário
}

5. Trate a sessão de recuperação

O link enviado pelo Supabase carrega informações temporárias para permitir a troca da senha. A sua aplicação deve deixar o cliente do Supabase processar esse retorno antes de chamar updateUser. Não tente criar um endpoint próprio que aceite senha nova sem validar a sessão de recuperação.

6. Teste no domínio publicado

Teste o fluxo inteiro com um usuário real de teste: solicite a recuperação, abra o e-mail, clique no link, confirme a URL final, troque a senha, encerre a sessão e tente entrar com a nova credencial. Esse teste identifica problemas que não aparecem quando você valida somente o formulário local.

Erros mais comuns

  • O e-mail não chega: confira o provedor de e-mail do projeto, limites de envio e a caixa de spam.
  • O link abre a página errada: revise redirectTo e as URLs autorizadas no Supabase Auth.
  • Link expirado: solicite uma nova recuperação e não reutilize links antigos.
  • updateUser retorna erro: confirme que o usuário chegou pela sessão de recuperação válida.
  • Funciona em lovable.app e quebra no domínio próprio: adicione o domínio final às URLs permitidas.
  • Usuário recebe mensagem que revela se a conta existe: prefira respostas neutras para reduzir enumeração de usuários.

Segurança: o que não fazer

  • Não envie senhas por e-mail ou armazene senha em tabela própria.
  • Não crie token caseiro se o Supabase Auth já gerencia o fluxo.
  • Não deixe a rota de redefinição aceitar troca de senha sem sessão válida.
  • Não exponha service role key no frontend para tentar atualizar usuários.
  • Não registre senha, token de recuperação ou credenciais em logs.

Como melhorar a experiência do usuário

A melhor tela de recuperação é curta e previsível. Depois de solicitar o e-mail, informe que o link pode levar alguns minutos e que o usuário deve verificar spam. Na tela de nova senha, explique os requisitos antes do envio. Se o link estiver inválido ou expirado, ofereça um botão claro para solicitar outro.

Em projetos SaaS, também vale registrar eventos de segurança sem guardar dados sensíveis: solicitação de recuperação, troca concluída e sessões encerradas. Isso ajuda no suporte e na investigação de comportamento anormal.

Se você ainda está montando a autenticação, comece por https://blog.lovacademy.com.br/como-criar-login-na-lovable. Para evitar erros comuns em produção, veja https://blog.lovacademy.com.br/autenticacao-lovable-erros-producao-supabase-auth. E para reforçar a camada de banco, use o guia de RLS: https://blog.lovacademy.com.br/como-configurar-rls-supabase-lovable.

Perguntas frequentes

Posso recuperar a senha sem Supabase?
Sim, se o projeto usar outro backend de autenticação. Neste guia o fluxo é específico para apps Lovable conectados ao Supabase Auth.
O link de recuperação deve voltar para qual página?
Para uma rota do seu app criada especificamente para redefinir a senha, e essa URL precisa estar autorizada nas configurações do Supabase Auth.
Preciso usar service role para trocar a senha?
Não no fluxo normal do próprio usuário. A troca deve acontecer com a sessão de recuperação validada pelo Supabase Auth, sem expor chaves administrativas ao navegador.
Por que funciona localmente e falha no domínio?
Normalmente porque a URL de produção não foi adicionada às URLs permitidas ou porque o redirectTo ainda aponta para o endereço antigo.

Fontes oficiais

  • Lovable + Supabase: https://docs.lovable.dev/integrations/supabase
  • Lovable Plan mode, exemplo de autenticação com password reset: https://docs.lovable.dev/features/plan-mode
  • Supabase Auth password reset: https://supabase.com/docs/guides/auth/passwords

Criar projeto na Lovable

Receba os novos artigos por e-mail

Continue lendo

Lovable - Como definir o domínio principal na Lovable e configurar o www corretamente
Deploy e Infraestrutura

Como definir o domínio principal na Lovable e configurar o www corretamente

Aprenda a definir o domínio principal na Lovable, conectar a versão www e evitar URLs concorrentes, DNS duplicado e redirecionamentos inesperados.

8 min de leitura
Lovable - Lovable Workspace Insights: como acompanhar adoção e uso dos seus apps
Novidades da Lovable

Lovable Workspace Insights: como acompanhar adoção e uso dos seus apps

O Workspace Insights da Lovable mostra visitas aos apps publicados, apps e builders ativos, conexões adicionadas e os projetos mais usados do workspace em uma visão de 30 dias.

8 min de leitura
Lovable - Como usar subdomínio na Lovable sem mexer no domínio principal
Deploy e Infraestrutura

Como usar subdomínio na Lovable sem mexer no domínio principal

Aprenda a conectar um subdomínio à Lovable sem alterar o site que já funciona no domínio principal, com DNS, SSL e troubleshooting prático.

7 min de leitura