Use la IA para integrar Auth0
Use la IA para integrar Auth0
Si usa un asistente de programación con IA como Claude Code, Cursor o GitHub Copilot, puede añadir automáticamente la autenticación de Auth0 a su API en cuestión de minutos mediante agent skills.Instalar:Luego, pídale a su asistente de IA:Su asistente de IA creará automáticamente su API de Auth0, recuperará las credenciales, instalará
@auth0/auth0-fastify-api, configurará el plugin y protegerá los endpoints de su API con validación de JWT. Documentación completa de agent skills →Requisitos previos: Antes de comenzar, asegúrese de tener instalado lo siguiente:Verifique la instalación:
node --version && npm --versionCompatibilidad de versiones de Fastify: Esta guía de inicio rápido funciona con Fastify 5.x y versiones posteriores.Primeros pasos
Crear un proyecto nuevo
Crea un directorio nuevo para tu API de Fastify e inicializa un proyecto de Node.js.Inicializar el proyectoCree la estructura del proyecto
Instala el SDK de la API de Auth0 para Fastify
Instale las dependencias requeridasActualiza tu
package.json para agregar scripts de inicio:package.json
Configura tu API de Auth0
A continuación, debes crear una nueva API en tu inquilino de Auth0 y agregar las variables de entorno a tu proyecto.Tienes dos opciones para configurar tu API de Auth0: usar un comando de la CLI o configurarla manualmente desde el Dashboard:
- CLI
- Dashboard
Ejecuta el siguiente comando en el directorio raíz de tu proyecto para crear una API de Auth0:Después de crearla, copia los valores de Identifier y dominio, y luego crea tu archivo
.env:.env
Este comando hará lo siguiente:
- Comprobará si has iniciado sesión (y te pedirá que lo hagas si es necesario)
- Creará una API de Auth0 con el identificador especificado
- Mostrará los detalles de la API, incluidos el dominio y el identificador
Configurar el plugin de la API de Auth0
Cree su servidor Fastify y registre el complemento de la API de Auth0:Qué hace esto:
server.js
- Registra el complemento de la API de Auth0 con tu dominio de Auth0 y la audiencia de la API
- Configura la validación de JWT para las solicitudes entrantes
- Pone el preHandler
requireAuth()a disposición para proteger rutas
Crear rutas de API
Agrega rutas públicas y protegidas a tu archivo Puntos clave:
server.js:server.js
- Las rutas públicas no requieren autenticación
- Las rutas protegidas usan
preHandler: fastify.requireAuth()para exigir un JWT válido request.usercontiene las claims del JWT decodificado para las solicitudes autenticadas- La claim
subcontiene el identificador único del usuario
Inicia tu API
Inicie el servidor de desarrollo:Tu API ya se está ejecutando en http://localhost:3001.
La opción
--watch en Node.js 20+ reinicia automáticamente el servidor cuando cambian los archivos.Pruebe su API
Pruebe el endpoint público (no requiere autenticación):Deberías ver:Pruebe el endpoint protegido sin un token (debería fallar):Debería aparecer un error 401 Unauthorized:Para probar con un token válido, necesitas:
- Crear una aplicación cliente (web o móvil) que autentique usuarios
- Configurar el cliente para solicitar un token de acceso para tu API (mediante el parámetro
audience) - Usar ese token de acceso en el encabezado
Authorization
Punto de controlAhora deberías tener una API protegida. Tu API:
- Acepta solicitudes a endpoints públicos sin autenticación
- Rechaza solicitudes a endpoints protegidos sin un token válido
- Valida los tokens JWT con tu dominio de Auth0 y la audiencia
- Proporciona información del usuario a partir de los claims del token mediante
request.user
Uso avanzado
Claims personalizados del token con TypeScript
Claims personalizados del token con TypeScript
Amplía la interfaz Ahora TypeScript reconocerá tus claims personalizados:
Token para añadir seguridad de tipos a los claims personalizados de tus tokens de acceso:server.ts
server.ts
Los claims personalizados deben usar URL con espacio de nombres (por ejemplo,
https://myapp.com/roles), a menos que sean claims estándar de OIDC. Más información sobre los claims personalizados.Autorización basada en permisos
Autorización basada en permisos
Comprueba permisos específicos en el token de acceso:
server.js
Los permisos deben configurarse en la configuración de la API de Auth0 y concederse a los clientes. Más información sobre los permisos de API.
Autorización basada en roles
Autorización basada en roles
Implemente el control de acceso basado en roles mediante claims personalizados:
server.js
Los roles deben agregarse a los tokens mediante Auth0 Actions. Aprenda a agregar roles a los tokens.
Configuración de CORS
Configuración de CORS
Habilite CORS para permitir solicitudes desde aplicaciones web:Para producción, especifique los orígenes exactos:
server.js
server.js
Manejo de errores
Manejo de errores
Agregue un manejo de errores completo para los errores de autenticación:
server.js
Limitación de tasa
Limitación de tasa
Protege tu API frente a abusos mediante la limitación de tasa:
server.js
Solución de problemas
Problemas comunes y soluciones
Problemas comunes y soluciones
”No authorization token was found”
Problema: La API no puede encontrar el token de acceso en la solicitud.Soluciones:- Asegúrate de que la cabecera
Authorizationesté presente:Authorization: Bearer YOUR_TOKEN - Comprueba que “Bearer” esté incluido antes del token
- Verifica que el token no haya expirado
”Invalid token” o “jwt malformed”
Problema: El formato del token no es válido.Soluciones:- Asegúrate de que estás usando un token de acceso, no un token de ID
- El token debe obtenerse con el parámetro
audiencede tu API - Comprueba que el token sea un JWT válido (debe tener tres partes separadas por puntos)
“Invalid signature”
Problema: La firma del token no coincide.Soluciones:- Verifica que
AUTH0_DOMAINcoincida con el dominio que emitió el token - Asegúrate de usar el algoritmo de firma RS256 (predeterminado)
- Comprueba que el token no se haya modificado
”Invalid audience”
Problema: La audiencia del token no coincide con tu API.Solución: La aplicación cliente debe solicitar un token con la audiencia correcta:Errores de CORS en el navegador
Problema: El navegador bloquea las solicitudes a la API debido a la política de CORS.Solución: Instala y configura@fastify/cors:Próximos pasos
- Inicio rápido para aplicaciones web con Fastify - Cree una aplicación web que llame a su API
- Control de acceso basado en roles - Implemente permisos granulares
- Prácticas recomendadas de autorización de API - Obtenga más información sobre las prácticas recomendadas para los tokens de acceso
- Supervise su API - Configure el registro y la supervisión
Recursos
- auth0-fastify-api GitHub - Código fuente y ejemplos
- Documentación de Fastify - Más información sobre Fastify
- Autenticación de API de Auth0 - Información sobre los tokens de acceso
- Comunidad de Auth0 - Obtén ayuda de la comunidad