Saltar al contenido principal

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/verify

Verifica el código TOTP y completa la activación de 2FA

📋 Parámetros

tokenstringrequerido

Token temporal obtenido en el Paso 1 (setup)

codestringrequerido

Có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 token de 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