Usa IA para integrar Auth0
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
1
Crear un proyecto nuevo
Cree un directorio nuevo para su aplicación Fastify e inicialice un proyecto de Node.js.Inicializar el proyectoCree la estructura del proyecto
2
Instala el SDK de Auth0 para Fastify
Instala las dependencias necesariasActualice su
Usamos
@fastify/view con ejs para el renderizado del lado del servidor. Puede usar cualquier motor de plantillas compatible con Fastify.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:
- Quick Setup (recomendado)
- CLI
- Dashboard
Cree una aplicación de Auth0 y copie el archivo
.env precompletado con los valores de configuración correctos.4
Configurar el plugin de Auth0
Cree su servidor Fastify y registre el complemento de Auth0:Qué hace esto:
server.js
- 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/logouty/auth/callback - Gestiona la sesión mediante cookies cifradas
5
Crear plantillas de vista
Crea un directorio Crea la plantilla de la página de inicio:Crea la plantilla de la página de perfil:
views y añade los archivos de plantilla:Mac/Linux
Windows
views/home.ejs
views/profile.ejs
6
Crear rutas
Agrega las rutas a tu archivo Puntos clave:
server.js:server.js
- La ruta de inicio comprueba el estado de autenticación y lo pasa a la plantilla
- La ruta de perfil usa un
preHandlerpara protegerla getSession()devuelve la sesión del usuario onullsi no está autenticadogetUser()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:
- Haces clic en “Login” - se te redirige a la página de Universal Login de Auth0
- Completas la autenticación - se te redirige de nuevo a tu aplicación
- Visitas “/profile” - ves la información de tu usuario
- Haces clic en “Logout” - se cierra tu sesión tanto en tu aplicación como en Auth0
Uso avanzado
Llamadas a API protegidas con tokens de acceso
Llamadas a API protegidas con tokens de acceso
Para llamar a API externas que requieren un token de acceso, configure el SDK con una audiencia:Añada lo siguiente a su archivo Luego obtenga y use el token de acceso:
server.js
.env:.env
server.js
Rutas personalizadas
Rutas personalizadas
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.
Vinculación de cuentas
Vinculación de cuentas
Permita a los usuarios vincular varios proveedores de autenticación a una sola cuenta:Esto crea automáticamente las siguientes rutas:
server.js
/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
views/profile.ejs
Uso de TypeScript
Uso de TypeScript
Convierte tu proyecto a TypeScript para mejorar la seguridad de tipos:Crea un archivo Cambia el nombre de Actualiza
tsconfig.json:tsconfig.json
server.js a server.ts y añade tipos:server.ts
package.json:package.json
Solución de problemas
Problemas comunes y soluciones
Problemas comunes y soluciones
Error de “Invalid state” después de iniciar sesión
Problema: El valor destate no coincide entre la solicitud de autenticación y el callback.Soluciones:- Asegúrate de que las cookies se estén configurando correctamente (que el navegador no las bloquee)
- Verifica que la URL de callback coincida exactamente en Auth0 Dashboard (incluido
/auth/callback) - Comprueba que
SESSION_SECRETesté 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:- Ve a Auth0 Dashboard → Applications → Your App → Settings
- Agrega
http://localhost:3000/auth/callbacka Allowed Callback URLs - La URL debe coincidir exactamente (incluida la ruta
/auth/callback)
Las variables de entorno no se cargan
Problema: Los valores de configuración sonundefined.Solución:- Asegúrate de que
import 'dotenv/config'esté al principio del archivo de entrada - Verifica que el archivo
.envesté en el directorio raíz - Comprueba que no haya errores tipográficos en los nombres de las variables
Próximos pasos
- Autenticación de API con Fastify - Protege los endpoints de tu API mediante la validación de JWT
- Personaliza Universal Login - Adapta la experiencia de inicio de sesión a tu marca
- Agregar conexiones sociales - Habilita el inicio de sesión con Google, GitHub y otros proveedores sociales
- Implementa MFA - Añade autenticación multifactor
Recursos
- auth0-fastify GitHub - Código fuente y ejemplos
- Documentación de Fastify - Más información sobre Fastify
- Comunidad de Auth0 - Obtén ayuda de la comunidad