Alterar Senha
Endpoint para alteração de senha do usuário. Requer a senha atual para validação e permite definir uma nova senha com confirmação.
Autenticação
Bearer token JWT do usuário autenticado
Parâmetros
Path Parameters
ID do usuário que terá a senha alterada
Request Body
Senha atual do usuário para validação
Nova senha (máximo 32 caracteres)
Confirmação da nova senha (deve ser igual ao campo password)
Responses
{
"user": {
"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": "Senha alterada com sucesso"
}
Exemplo de Requisição
curl --location --request PATCH 'http://localhost:3333/user/change-password/123e4567-e89b-12d3-a456-426614174000' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data-raw '{
"oldPassword": "senhaAtual123",
"password": "novaSenhaSegura456",
"passwordConfirmation": "novaSenhaSegura456"
}'
Validações e Regras
Validação de Senha Atual
A senha atual deve ser fornecida corretamente para validação. Caso contrário, a requisição será rejeitada com erro 401.
Requisitos da Nova Senha
- Tamanho: Máximo de 32 caracteres
- Confirmação: Deve ser igual ao campo
passwordConfirmation
- Diferente: Recomenda-se que seja diferente da senha atual
Permissões
- Próprio usuário: Pode alterar apenas sua própria senha
Notificação por E-mail
Após a alteração bem-sucedida, um e-mail de confirmação é enviado automaticamente:
Recuperação de Senha
Se o usuário esqueceu a senha atual, use o endpoint /user/forgot-password/:email para enviar um código de recuperação por e-mail.
Troubleshooting
Problemas Comuns
| Problema | Causa | Solução |
|---|
| ”Senha atual incorreta” | Senha informada não confere | Verificar senha atual do usuário |
| ”As senhas não conferem” | password ≠ passwordConfirmation | Garantir que ambos os campos sejam iguais |
| ”Senha muito longa” | Senha > 32 caracteres | Limitar senha a 32 caracteres |
| ”Sem permissão” | Tentando alterar senha de outro usuário | Apenas o próprio usuário ou admin pode alterar |
Implemente um timer de bloqueio após múltiplas tentativas incorretas de senha para aumentar a segurança.
Próximos Passos
- Implementar validação de força da senha
- Adicionar autenticação de dois fatores (2FA)
- Configurar política de expiração de senha
- Manter histórico de senhas usadas