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
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
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
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.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
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
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
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