Validar OTP
Endpoint para validar um código OTP (One-Time Password) do usuário. Este endpoint é utilizado para confirmar que o código gerado pelo aplicativo autenticador está correto.
Autenticação
Bearer token JWT do usuário autenticado
Parâmetros
Request Body
Código OTP de 6 dígitos gerado pelo aplicativo autenticador
ID do OTP a ser validado (opcional)
Responses
200 - OTP Válido
400 - Código Inválido
401 - Não Autorizado
404 - OTP Não Encontrado
{
"valid" : true ,
"message" : "OTP validado com sucesso" ,
"userId" : "123e4567-e89b-12d3-a456-426614174000"
}
Exemplo de Requisição
curl --location --request POST 'http://localhost:3333/auth/otp/validate' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data-raw '{
"token": "123456"
}'
Diferença entre Verify e Validate
Verify (Verificação Inicial)
Usado durante a configuração inicial do 2FA
Confirma que o usuário configurou corretamente o app autenticador
Ativa o OTP para o usuário
Validate (Validação Contínua)
Usado após o 2FA já estar configurado
Valida códigos em logins e ações sensíveis
Não modifica a configuração do OTP
const validateOTPFormat = ( code ) => {
// Apenas 6 dígitos
if ( ! / ^ \d {6} $ / . test ( code )) {
throw new Error ( 'Código deve conter exatamente 6 dígitos' );
}
return true ;
};
Códigos OTP são válidos por apenas 30 segundos. Certifique-se de que o relógio do dispositivo está sincronizado.
Implemente um timer visual para mostrar quando o código atual irá expirar, melhorando a experiência do usuário.
Troubleshooting
Códigos Sempre Inválidos
Problema : Todos os códigos digitados são rejeitados
Soluções :
Verificar sincronização de tempo do dispositivo
Confirmar que o OTP foi configurado corretamente
Tentar gerar novo OTP se o problema persistir
Lockout por Tentativas
Problema : Usuário bloqueado por muitas tentativas
Solução : Aguardar 5 minutos ou contatar administrador para reset manual
Próximos Passos
Implemente backup codes para recuperação de acesso
Configure notificações de tentativas de validação
Adicione logs de segurança para auditoria
Teste diferentes apps autenticadores
Este endpoint não ativa o OTP, apenas valida códigos. Use /auth/otp/verify durante a configuração inicial.