Verificar 2FA
Endpoint para verificar el código TOTP generado por la app autenticadora y completar la configuración de 2FA en la cuenta del usuario.
🔄 Paso 2 de la Configuración 2FA
Este endpoint completa el proceso de configuración de 2FA iniciado en el paso de setup. Verifica el código TOTP y, si es válido, activa 2FA en la cuenta.
POST
/auth/account/2fa/verifyVerifica el código TOTP y completa la activación de 2FA
📋 Parámetros
tokenstringrequeridoToken temporal obtenido en el Paso 1 (setup)
codestringrequeridoCódigo TOTP de 6 dígitos generado por la app autenticadora
📤 Respuesta
{
"code": 1008,
"message": "Two-factor authentication enabled",
"data": {
"status": "success"
}
}Autenticación
JWT Requerido
Este endpoint requiere un JWT válido:
Authorization: Bearer <access_token>
Requisitos
⏱️ Token de configuración
- El
tokende setup expira en 1 minuto (por lo que la verificación debe hacerse rápido). - Si expira, este endpoint responderá con error y deberás ejecutar nuevamente el paso de setup.
Código TOTP
- Debe ser un código de 6 dígitos generado por una app autenticadora (TOTP).
- Si el código es inválido, se devuelve un error de verificación.
Respuestas
✅ Verificación exitosa
2FA Activado
Código 1008 - El código es válido y 2FA queda activado.
{
"code": 1008,
"message": "Two-factor authentication enabled",
"data": {
"status": "success"
}
}
❌ Errores
Datos faltantes o token inválido/expirado
Código 4006 - Falta token o code, o el token no es válido/ya expiró.
{
"code": 4006,
"message": "Missing required data"
}
Código TOTP inválido
Código 4003 - El código TOTP no es válido.
HTTP Status esperado: 401 Unauthorized
{
"code": 4003,
"message": "Invalid verification code"
}
Ejemplo JavaScript/TypeScript
async function verify2FA(accessToken, token, code) {
const res = await fetch('https://api.swapbits.co/auth/account/2fa/verify', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ token, code })
});
const result = await res.json();
if (result.code === 1008) {
// ✅ 2FA activado
return { success: true };
}
// 4006 => token/code faltante o token expirado
// 4003 => TOTP inválido
return { success: false, error: result };
}
cURL
curl -X POST 'https://api.swapbits.co/auth/account/2fa/verify' \
-H 'Authorization: Bearer YOUR_JWT_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"token": "setup-token-from-step-1",
"code": "123456"
}'
Enlaces Relacionados
- Configurar 2FA - POST /auth/account/2fa/setup
- Desactivar 2FA - DELETE /auth/account/2fa
- Estado 2FA - GET /auth/account/2fa/status