Skip to content

[FEATURE] implementar Recuperação de Senha com Token via E-mail #1

@KauannSSilva

Description

@KauannSSilva

A sua sugestão está relacionada a um problema?

Atualmente, se um usuário (paciente ou médico) esquecer sua senha, não existe um mecanismo para recuperá-la de forma autônoma. Isso pode levar à perda de acesso à conta e à criação de contas duplicadas ou abandono da plataforma.

Descreva a solução que você gostaria

Implementar um fluxo completo e seguro de recuperação de senha, que consiste em:

  1. Um link "Esqueci minha senha" na página de login.
  2. Uma página onde o usuário insere seu endereço de e-mail cadastrado.
  3. O sistema gera um token de uso único, com tempo de validade (ex: 1 hora), e o envia para o e-mail do usuário.
  4. O e-mail contém um link para uma página de redefinição de senha.
  5. Nesta página, o usuário, autenticado pelo token, pode cadastrar uma nova senha.

Plano de Implementação / Critérios de Aceite

  • Banco de Dados: Criar a tabela password_resets para armazenar o e-mail, o token e a data de expiração.
  • Dependência: Adicionar e configurar a biblioteca PHPMailer para o envio confiável de e-mails via SMTP.
  • Front-End:
    • Criar a página esqueci_senha.html com o formulário para solicitar a recuperação.
    • Criar a página reset_senha.php com o formulário para o usuário definir a nova senha.
  • Back-End:
    • Desenvolver o script solicitar_recuperacao.php que valida o e-mail, gera e salva o token, e envia o e-mail de recuperação.
    • Desenvolver o script atualizar_senha.php que valida o token, confirma a nova senha, atualiza a senha do usuário no banco e invalida o token.
  • Segurança:
    • Garantir que os tokens gerados sejam criptograficamente seguros.
    • Implementar um tempo de expiração para cada token.
    • Assegurar que o token seja excluído ou invalidado após o uso para prevenir reuso.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions