Proyecto mínimo de autenticación JWT con Flask y vista en Bootstrap 5. Incluye login (form y JSON), dashboard protegido por cookie JWT, manejo de 404 y logging a archivo.
- Python 3.11+
- Flask 3.x, Flask-JWT-Extended 4.7.x, python-dotenv
- Bootstrap 5 (CDN)
- Crear entorno virtual (opcional):
python -m venv .venv && source .venv/bin/activate- Instalar dependencias:
pip install -r requirements.txt- Variables de entorno en
.env(ya incluido):
JWT_SECRET_KEY=clave-secreta-muy-segura-2026
JWT_ACCESS_TOKEN_EXPIRES_HOURS=1
FLASK_DEBUG=true
FLASK_HOST=0.0.0.0
FLASK_PORT=5000python app.py
# o cambiar puerto al vuelo
FLASK_PORT=5050 python app.pyAbrir: http://localhost:5000/ (o el puerto configurado).
- Email:
dev@gmail.com - Password:
4825
- GET
/→ Login (HTML) - POST
/login→ JSON y Form. Ejemplo JSON:
curl -X POST -H "Content-Type: application/json" \
-d '{"email":"dev@gmail.com","password":"4825"}' \
http://localhost:5000/login- GET
/dashboard→ Protegida; requiere cookie JWT (se setea tras login por formulario). - GET
/logout→ Limpia cookie y redirige al login.
- Archivo:
logs/app.log(rotación 1MB, 3 backups) - Registra: login exitoso, acceso a dashboard, 404 y access logs de Werkzeug.
