Esqueci Minha Senha

Esqueci minha senha (usuário e psicólogo)

Como um paciente ou psicólogo, quero poder recuperar minha senha caso eu esqueça, para continuar acessando minha conta na plataforma de forma segura.

✅ Critérios de Aceite
  1. 🔗 Fluxo de Recuperação
    • Inserir link "Esqueci minha senha" nas telas de login de paciente e psicólogo.
    • Ao clicar, abrir tela solicitando o e-mail cadastrado.
  2. ✉️ Envio do e-mail
    • Após envio do e-mail, mostrar mensagem:
    • Se encontramos uma conta com este e-mail, você receberá as instruções para redefinir sua senha.
    • Enviar e-mail com:
      • Link único e temporário para redefinição da senha.
      • Tempo de expiração configurável (ex: 30 minutos).
      • Exemplo do link: https://psycs.com.br/redefinir-senha?token=TOKEN-AQUI
  3. 🔐 Tela de Redefinição de Senha
    • Ao acessar o link do e-mail, o usuário verá:
      • Campo: Nova senha
      • Campo: Confirmar nova senha
      • Botão: Redefinir senha
    • Validar token e permitir criação de nova senha se o token for válido e ainda estiver ativo.
  4. 🛡 Segurança
    • O token deve ser criptografado, de uso único e com expiração.
    • Utilizar criptografia padrão da UITEC
    • Após a redefinição, invalidar o token imediatamente.
    • O sistema não deve indicar se o e-mail existe ou não na base (para evitar vazamento de informações).
  5. 📤 Comunicação
    • Após redefinição bem-sucedida, mostrar mensagem:
    • Sua senha foi atualizada com sucesso. Você já pode fazer login com a nova senha.
    • Opcional: enviar e-mail de confirmação da alteração de senha.
🧱 Requisitos Técnicos
Backend
  • Rota POST /api/usuario/esqueci-senha
    • Recebe: { email }
    • Gera token de redefinição e envia por e-mail.
  • Rota POST /api/usuario/redefinir-senha
    • Recebe: { token, nova_senha, confirmar_senha }
    • Valida token, redefine senha, remove token do banco.
  • Tabela usuario campo co_redefinir_senha:
    • Criar o hash com essas informações: id_usuario, criado_em, expira_em
Frontend
  • Tela de recuperação (input de e-mail).
  • Tela de redefinição de senha (com campos de nova senha e confirmação).
  • Feedbacks visuais para todos os passos.
🧪 Testes
  • Recuperação com e-mail válido.
  • Token expirado ou inválido.
  • Fluxo completo para usuários e psicólogos (ambos os papéis).
  • Tentativas repetidas de redefinição.