Saltar al contenido principal

Usa IA para integrar Auth0

Si usas un asistente de programación con IA como Claude Code, Cursor o GitHub Copilot, puedes añadir la autenticación de Auth0 automáticamente en minutos usando agent skills.Instala:
Luego, pídele a tu asistente de IA:
Tu asistente de IA creará automáticamente tu aplicación en Auth0, obtendrá las credenciales, instalará @auth0/auth0-fastify, configurará el plugin y creará todas las rutas y vistas necesarias. Documentación completa sobre agent skills →
Requisitos previos: Antes de comenzar, asegúrate de tener instalado lo siguiente:Verifica 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.

Introducción

Esta guía de inicio rápido muestra cómo agregar la autenticación de Auth0 a una aplicación Fastify. 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 Fastify.
1

Crear un proyecto nuevo

Cree un directorio nuevo para su aplicación Fastify e inicialice un proyecto de Node.js.
Inicializar el proyecto
Cree la estructura del proyecto
2

Instala el SDK de Auth0 para Fastify

Instala las dependencias necesarias
Usamos @fastify/view con ejs para el renderizado del lado del servidor. Puede usar cualquier motor de plantillas compatible con Fastify.
Actualice su package.json para añadir scripts de inicio:
package.json
3

Configura tu aplicación de Auth0

A continuación, debe crear una nueva aplicación en su inquilino de Auth0 y agregar las variables de entorno a su proyecto.Tiene tres opciones para configurar su aplicación de Auth0: usar la herramienta Quick Setup (recomendada), ejecutar un comando de la CLI o configurarla manualmente desde el Dashboard:
Cree una aplicación de Auth0 y copie el archivo .env precompletado con los valores de configuración correctos.
Verifique que exista su archivo .env: cat .env (Mac/Linux) o type .env (Windows)
4

Configurar el plugin de Auth0

Cree su servidor Fastify y registre el complemento de Auth0:
server.js
Qué hace esto:
  • Registra el motor de vistas para procesar plantillas HTML
  • Configura el complemento de Auth0 con tus credenciales
  • Crea automáticamente rutas en /auth/login, /auth/logout y /auth/callback
  • Gestiona la sesión mediante cookies cifradas
5

Crear plantillas de vista

Crea un directorio views y añade los archivos de plantilla:
Mac/Linux
Windows
Crea la plantilla de la página de inicio:
views/home.ejs
Crea la plantilla de la página de perfil:
views/profile.ejs
6

Crear rutas

Agrega las rutas a tu archivo server.js:
server.js
Puntos clave:
  • La ruta de inicio comprueba el estado de autenticación y lo pasa a la plantilla
  • La ruta de perfil usa un preHandler para protegerla
  • getSession() devuelve la sesión del usuario o null si no está autenticado
  • getUser() devuelve la información del perfil del usuario autenticado
7

Ejecuta tu aplicación

Inicie el servidor de desarrollo:
Abre http://localhost:3000 en tu navegador.
La opción --watch en Node.js 20+ reinicia automáticamente el servidor cuando cambian los archivos.
VerificaciónAhora deberías tener una página de inicio de sesión de Auth0 totalmente funcional. Cuando:
  1. Haces clic en “Login” - se te redirige a la página de Universal Login de Auth0
  2. Completas la autenticación - se te redirige de nuevo a tu aplicación
  3. Visitas “/profile” - ves la información de tu usuario
  4. Haces clic en “Logout” - se cierra tu sesión tanto en tu aplicación como en Auth0

Uso avanzado

Para llamar a API externas que requieren un token de acceso, configure el SDK con una audiencia:
server.js
Añada lo siguiente a su archivo .env:
.env
Luego obtenga y use el token de acceso:
server.js
De forma predeterminada, las rutas de Auth0 se montan en /auth/*. Puede deshabilitar el montaje automático y crear rutas personalizadas:
server.js
Recuerde actualizar sus Allowed Callback URLs en el Auth0 Dashboard para incluir la URL de callback personalizada.
Permita a los usuarios vincular varios proveedores de autenticación a una sola cuenta:
server.js
Esto crea automáticamente las siguientes rutas:
  • /auth/connect - Vincular un nuevo proveedor
  • /auth/connect/callback - Gestionar el callback de vinculación
  • /auth/unconnect - Desvincular un proveedor
  • /auth/unconnect/callback - Gestionar el callback de desvinculación
Añada botones de vinculación a su página de perfil:
views/profile.ejs
Convierte tu proyecto a TypeScript para mejorar la seguridad de tipos:
Crea un archivo tsconfig.json:
tsconfig.json
Cambia el nombre de server.js a server.ts y añade tipos:
server.ts
Actualiza package.json:
package.json

Solución de problemas

Error de “Invalid state” después de iniciar sesión

Problema: El valor de state no coincide entre la solicitud de autenticación y el callback.Soluciones:
  1. Asegúrate de que las cookies se estén configurando correctamente (que el navegador no las bloquee)
  2. Verifica que la URL de callback coincida exactamente en Auth0 Dashboard (incluido /auth/callback)
  3. Comprueba que SESSION_SECRET esté configurada y tenga al menos 64 caracteres

Error de “session is undefined”

Problema: No se pueden recuperar los datos de la sesión.Solución: Asegúrate de que el plugin de Auth0 se registre antes de acceder a los métodos de sesión:

La URL de callback no coincide

Problema: Error “Callback URL mismatch” de Auth0.Solución:
  1. Ve a Auth0 Dashboard → Applications → Your App → Settings
  2. Agrega http://localhost:3000/auth/callback a Allowed Callback URLs
  3. La URL debe coincidir exactamente (incluida la ruta /auth/callback)

Las variables de entorno no se cargan

Problema: Los valores de configuración son undefined.Solución:
  1. Asegúrate de que import 'dotenv/config' esté al principio del archivo de entrada
  2. Verifica que el archivo .env esté en el directorio raíz
  3. Comprueba que no haya errores tipográficos en los nombres de las variables

Próximos pasos

Ahora que ya tienes la autenticación en funcionamiento, considera explorar lo siguiente:

Recursos