Saltar al contenido principal

Prompt de IA

¿Usas IA para integrar Auth0? Añade este prompt a Cursor, Windsurf, Copilot, Claude Code o tu IDE favorito con IA para acelerar el desarrollo.
Requisitos previos: Antes de empezar, asegúrate de tener instalado lo siguiente:
  • Python 3.9 o posterior (se recomienda 3.11 o superior)
  • pip 21+ o Poetry 1.2+
  • OpenSSL: necesario para generar secretos de sesión
Compatibilidad de versiones de FastAPI: Esta guía de inicio rápido requiere FastAPI 0.115.11+ y Pydantic 2.12.5+.

Primeros pasos

Esta guía de inicio rápido muestra cómo añadir la autenticación de Auth0 a una aplicación web de Python con FastAPI. Crearás una aplicación web segura con funciones de inicio de sesión, cierre de sesión y perfil de usuario mediante el SDK de Auth0 para FastAPI.
1

Crear un proyecto nuevo

Cree un nuevo directorio para su proyecto y configure un entorno virtual:
Crea y activa un entorno virtual:
2

Instala el SDK de Auth0 para FastAPI

3

Configura tu aplicación en Auth0

A continuación, debes crear una nueva aplicación en tu tenant de Auth0 y agregar las variables de entorno a tu proyecto.Puede hacerlo automáticamente ejecutando un comando de CLI o de forma manual a través del Dashboard:
Ejecuta el siguiente comando de shell en el directorio raíz de tu proyecto para crear una aplicación de Auth0 y generar un archivo .env:
4

Configura el SDK de Auth0 para FastAPI

Crea un archivo main.py en el directorio raíz de tu proyecto y agrega el siguiente código:
main.py
SESSION_SECRET se usa para cifrar las cookies de sesión y debe ser criptográficamente seguro. Sin un secreto sólido (mínimo 32 bytes), las sesiones de la aplicación pueden verse comprometidas. Genera un secreto seguro con openssl rand -hex 64 y nunca lo subas al control de versiones.SessionMiddleware debe agregarse antes de usar el SDK. Sin él, FastAPI no puede leer ni establecer cookies, y todos los intentos de autenticación fallarán sin mostrar errores.HTTPS in Production es obligatorio para las cookies seguras (secure=True). Sin HTTPS, los navegadores no enviarán las cookies de sesión y la sesión de los usuarios se cerrará repetidamente después de cada solicitud.
5

Crear rutas y mostrar el perfil del usuario

Agrega las siguientes rutas a tu archivo main.py para crear una página de inicio y una página de perfil protegida:
main.py
Esto crea:
  • Una página de inicio (/) que muestra un botón de inicio de sesión cuando no se ha iniciado sesión, o el perfil del usuario cuando se ha iniciado sesión
  • Un endpoint protegido de la API (/profile) que devuelve datos de usuario en formato JSON y requiere autenticación
  • Estilos completos para una experiencia de usuario pulida
6

Ejecuta tu aplicación

Como alternativa, si agregaste el bloque if __name__ == "__main__" a tu main.py:
Punto de controlAhora deberías tener una página de inicio de sesión de Auth0 totalmente funcional ejecutándose en tu localhost.

Uso avanzado

Cree dependencias personalizadas de FastAPI para el control de acceso basado en roles:
Configure el SDK para solicitar tokens de acceso para su API y utilizarlos en llamadas a servicios posteriores:
Escale su aplicación almacenando las sesiones en Redis en lugar de cookies cifradas:
Ventajas de las sesiones con estado:
  • Sin límites de tamaño para las cookies - Almacene datos de sesión sin límite
  • Invalidación inmediata - Elimine sesiones del lado del servidor
  • Compatibilidad con cierre de sesión por canal de retorno - Gestione eventos de cierre de sesión desde Auth0
  • Mejor para sistemas distribuidos - Comparta sesiones entre varios servidores

Solución de problemas

Problema: Los usuarios inician sesión, pero las sesiones no persisten entre solicitudes.Posibles causas y soluciones:
  1. Falta SessionMiddleware Asegúrate de haber agregado SessionMiddleware a tu aplicación:
  2. HTTP en producción con cookies seguras Las cookies seguras requieren HTTPS. Si estás haciendo pruebas localmente con HTTP, puedes desactivar temporalmente las cookies seguras (no se recomienda en producción):
  3. SESSION_SECRET débil o ausente Genera un secreto robusto:
Problema: Después de hacer clic en “Log In”, Auth0 muestra este error: “Callback URL mismatch”Causa: La URL de callback no está registrada en la configuración de tu aplicación de Auth0.Solución:
  1. Ve a Auth0 Dashboard → Applications → Your App → Settings
  2. Agrega tu URL de callback a Allowed Callback URLs:
  3. En producción, agrega tu URL de producción:
  4. Haz clic en Save Changes
Nota: La URL debe coincidir exactamente, incluido el protocolo (http/https) y el número de puerto.
Problema: Errores relacionados con funciones asíncronas o bucles de eventos.Causa: FastAPI es un framework asíncrono y todos los métodos del SDK deben esperarse con await.Solución: Asegúrate de que todas las funciones de ruta sean async y de que los métodos del SDK usen await correctamente:
Problema: Las sesiones funcionan localmente, pero no en producción.Causa: Las cookies seguras requieren HTTPS en producción. La marca secure=True evita que las cookies se envíen a través de conexiones HTTP sin cifrar.Solución:
  1. Configura HTTPS en tu servidor de producción usando:
    • certificados de Let’s Encrypt
    • SSL/TLS del proveedor de nube (AWS ALB, Cloudflare, etc.)
    • proxy inverso (Nginx, Caddy, Traefik)
  2. Actualiza las URL de tu aplicación de Auth0 para usar HTTPS:
  3. Asegúrate de que APP_BASE_URL use HTTPS:
Para ver funciones más avanzadas y opciones de configuración, consulta la documentación del SDK de Auth0 FastAPI.