API REST con autenticación de dos factores (2FA) y validación de números telefónicos a través de múltiples proveedores externos.
Tag: v1
- Login con usuario/contraseña + verificación OTP (2FA)
- Generación y validación de códigos OTP numéricos de 6 dígitos
- Integración con reCAPTCHA v3 (invisible)
- Validación de números telefónicos contra múltiples APIs externas configurables
- Carga de archivos CSV para poblar la base de datos local de numeraciones
- Autenticación por API Key para endpoints de terceros
- CRUD básico de usuarios y tokens por línea de comandos (
crear_usuario.py) - Panel de administración de proveedores API (dashboard)
- Base de datos: SQLite con SQLModel
| Componente | Tecnología |
|---|---|
| Backend | Python + FastAPI |
| ORM | SQLModel |
| Base de datos | SQLite |
| Frontend | Bootstrap 5 básico |
| CAPTCHA | Google reCAPTCHA v3 |
| Cliente HTTP | httpx (Async) |
| Ruta | Descripción |
|---|---|
GET / |
Página de login (3 pasos: login → OTP → dashboard) |
POST /auth/login |
Autenticación usuario/contraseña |
POST /auth/generar-otp |
Generar código OTP |
POST /auth/validar-otp |
Validar código OTP |
GET /telefonos/consulta |
Consultar número telefónico vía API externa |
POST /telefonos/actualizar-bd |
Cargar CSV a base de datos local |
- Página única
index.htmlcon estilo Bootstrap básico - Flujo de 3 pasos: login → generar OTP → validar OTP
- Sin panel de administración unificado
- Sin diseño responsivo avanzado
Sin tag — versión en desarrollo activo
- Nuevo diseño visual: Glassmorphism + paleta Vapor Neon
- Fondo morado oscuro con degradados
- Acento neón rosa
#ff2d95 - Acento cian
#00fff0 - Acento violeta
#b388ff
- Dashboard unificado (
dashboard.html):- Pantalla de login integrada (overlay)
- Sidebar con 7 secciones: Verificador, Historial, OTP Config, BD Local, Usuarios, Tokens, APIs
- Tablas con estilo glassmorphism
- Modales con diseño glassmorphism
- Elementos decorativos: esferas flotantes animadas, botones neón
- Página independiente (
telefonos.html):- Diseño glassmorphism consistente
- Validación de tokens
- Consulta de teléfonos y búsqueda en BD local
- Botón de regreso al dashboard
- Eliminación de
index.html(ya no se sirve)
- Nuevo router
/admincon endpoints protegidos para:- CRUD completo de usuarios
- CRUD completo de tokens
- CRUD completo de proveedores API
- Consulta y recarga de base de datos local
- Refactor a estructura modular con
__init__.pyen todos los paquetes - Ruta raíz
GET /ahora sirvedashboard.html - Ruta
GET /telefonossirvetelefonos.html
# Clonar
git clone https://github.com/Ismvrr/Verficacion-2FA.git
cd Verficacion-2FA
# Entorno virtual
python -m venv venv
venv\Scripts\activate
# Dependencias
pip install -r requirements.txt
# Crear archivo de variables de entorno (editar con tus valores)
copy .env.example .env
# Ejecutar
python main.pyServidor en http://localhost:8000
SECRET_KEY=clave-secreta-para-jwt
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=1440
RECAPTCHA_SECRET_KEY=tu-secret-key-de-recaptcha
RECAPTCHA_SITE_KEY=tu-site-key-de-recaptcha