PATCH
https://api.myidvirtual.com
/
user
/
change-email
/
:id
Alterar E-mail
curl --request PATCH \
  --url https://api.myidvirtual.com/user/change-email/:id \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "password": "<string>",
  "email": "<string>",
  "emailConfirmation": "<string>",
  "code": "<string>"
}
'
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "[email protected]",
  "name": "João Silva",
  "role": "CUSTOMER",
  "status": true,
  "updatedAt": "2024-01-20T14:45:00.000Z",
  "message": "E-mail alterado com sucesso"
}

Alterar E-mail

Endpoint para alteração de e-mail do usuário. Requer validação por código enviado ao e-mail atual, senha atual e confirmação do novo e-mail.

Autenticação

Authorization
string
required
Bearer token JWT do usuário autenticado

Parâmetros

Path Parameters

id
string
required
ID do usuário que terá o e-mail alterado

Request Body

password
string
required
Senha atual do usuário para validação
email
string
required
Novo endereço de e-mail
emailConfirmation
string
required
Confirmação do novo e-mail (deve ser igual ao campo email)
code
string
required
Código de verificação enviado ao e-mail atual

Responses

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "email": "[email protected]",
  "name": "João Silva",
  "role": "CUSTOMER",
  "status": true,
  "updatedAt": "2024-01-20T14:45:00.000Z",
  "message": "E-mail alterado com sucesso"
}

Exemplo de Requisição

curl --location --request PATCH 'http://localhost:3333/user/change-email/123e4567-e89b-12d3-a456-426614174000' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data-raw '{
  "password": "minhasenha123",
  "email": "[email protected]",
  "emailConfirmation": "[email protected]",
  "code": "ABC123"
}'

Validações e Regras

Código de Verificação

O código de verificação tem validade limitada (geralmente 15-30 minutos). Após expirar, será necessário solicitar um novo código.

Novo E-mail

  • Deve ser único no sistema
  • Formato válido de e-mail
  • Não pode ser igual ao e-mail atual

Permissões

  • Próprio usuário: Pode alterar apenas seu próprio e-mail

Notificações por E-mail

E-mail de Confirmação

Enviado para o NOVO e-mail após alteração bem-sucedida.

Segurança

Proteção contra Ataques

// Implementar rate limiting
let tentativas = 0;
const MAX_TENTATIVAS = 3;

async function verificarCodigo(codigo) {
  if (tentativas >= MAX_TENTATIVAS) {
    alert('Número máximo de tentativas excedido. Solicite um novo código.');
    return;
  }

  try {
    // Fazer requisição
    tentativas++;
  } catch (error) {
    // Tratar erro
  }
}
Após alterar o e-mail, recomenda-se fazer logout e login novamente para atualizar o token JWT com as novas informações.

Troubleshooting

ProblemaCausaSolução
Código não recebidoE-mail na caixa de spamVerificar pasta de spam/lixo eletrônico
Código inválidoCódigo expirado ou incorretoSolicitar novo código
E-mail já em usoE-mail pertence a outro usuárioUsar e-mail diferente
Senha incorretaSenha informada está erradaVerificar senha atual

Próximos Passos

  1. Implementar validação de domínio de e-mail
  2. Adicionar verificação de e-mail descartável
  3. Configurar timeout para códigos de verificação
  4. Manter histórico de alterações de e-mail