Gerar OTP
Endpoint para gerar um novo código OTP (One-Time Password) com secret BASE32 e URL para configuração em aplicativos autenticadores.
Autenticação
Bearer token JWT do usuário autenticado
Responses
{
"secret": "JBSWY3DPEHPK3PXP",
"uri": "otpauth://totp/MyIDVirtual:[email protected]?secret=JBSWY3DPEHPK3PXP&issuer=MyIDVirtual",
"qrCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"backupCodes": [
"12345678",
"87654321",
"11223344",
"44332211",
"55667788"
],
"otpId": "123e4567-e89b-12d3-a456-426614174000"
}
Exemplo de Requisição
curl --location --request POST 'http://localhost:3333/auth/otp/generate' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
Campos da Resposta
Secret e Configuração
Chave secreta BASE32 para configuração manual do OTP
URI padrão do OTP para importação automática em apps autenticadores
QR Code em formato base64 para escaneamento com apps autenticadores
Códigos de Backup
Lista de códigos de backup para acesso em caso de perda do dispositivo
Identificação
ID único do OTP gerado para referência futura
Configuração em Apps Autenticadores
Apps Suportados
- Google Authenticator (iOS/Android)
- Microsoft Authenticator (iOS/Android)
Métodos de Configuração
1. Entrada Manual
// Mostrar secret para entrada manual
const secretDiv = document.createElement('div');
secretDiv.innerHTML = `
<p>Se não conseguir escanear o QR Code, insira manualmente:</p>
<code>${otpData.secret}</code>
<button onclick="copyToClipboard('${otpData.secret}')">Copiar</button>
`;
Troubleshooting
Problemas Comuns
| Problema | Causa | Solução |
|---|
| QR Code não carrega | Erro na geração | Verificar se usuário está autenticado |
| App não reconhece QR | URI malformada | Tentar entrada manual |
| Códigos sempre inválidos | Dessincronia de tempo | Sincronizar relógio do dispositivo |
| Backup codes não funcionam | Códigos já utilizados | Gerar novos códigos |
Códigos de backup devem ser armazenados de forma segura e podem ser usados apenas uma vez cada.
Sempre teste a configuração do OTP antes de finalizar. Um código deve ser verificado com sucesso antes de ativar o 2FA.
Próximos Passos
- Implemente verificação do OTP gerado
- Configure backup codes seguros
- Teste diferentes apps autenticadores
- Documente o processo para usuários finais
O secret gerado é único por usuário e deve ser mantido confidencial. Se comprometido, gere um novo OTP.