Usa IA para integrar Auth0
Usa IA para integrar Auth0
@auth0/nextjs-auth0, creará rutas de API y configurará las variables de entorno. Documentación completa de agent skills →Primeros pasos
Cree un nuevo proyecto
Instala el SDK de Auth0 para Next.js
shellscript npm install @auth0/nextjs-auth0 Crear los archivos del proyecto
Configura tu aplicación de Auth0
- Configuración rápida (recomendada)
- CLI
- Dashboard
.env ya completado con los valores de configuración correctos.Crear la configuración de Auth0
src/lib/auth0.ts:Añadir proxy
src/proxy.ts:src/, el archivo proxy.ts se crea dentro de src/. Si no usas un directorio src/, créalo en la raíz del proyecto./auth/login- Ruta de inicio de sesión/auth/logout- Ruta de cierre de sesión/auth/callback- Ruta de callback/auth/profile- Ruta del perfil de usuario/auth/access-token- Ruta del token de acceso/auth/backchannel-logout- Ruta de cierre de sesión por backchannel
Crear componentes de inicio de sesión, cierre de sesión y perfil
Actualiza tu página principal
src/app/page.tsx con:Actualiza el layout con Auth0Provider
src/app/layout.tsx para cargar la fuente Inter y envolver la aplicación con Auth0Provider:Configura Tailwind CSS
src/app/globals.css con:Ejecuta tu aplicación
/auth/* (no en /api/auth/*, como en la v3).Si el puerto 3000 ya está en uso, ejecuta: npm run dev -- --port 3001 y actualiza las URL de callback de tu aplicación de Auth0 a http://localhost:3001Solución de problemas
Error JWEDecryptionFailed
Error JWEDecryptionFailed
JWEDecryptionFailed: decryption operation failed, suele deberse a que AUTH0_SECRET no es válido o a que hay una cookie de sesión antigua cifrada con un secreto distinto.Solución:- Genera un secreto nuevo con:
- Actualiza tu archivo
.env.local:
-
Borra las cookies del navegador para
localhost:3000:- Chrome/Edge: Presiona
F12→ pestaña Application → Cookies → elimina todas las cookies de localhost - Firefox: Presiona
F12→ pestaña Storage → Cookies → elimina todas las cookies de localhost - Safari: menú Develop → Show Web Inspector → pestaña Storage → Cookies → Delete all
- Chrome/Edge: Presiona
- Reinicia el servidor de desarrollo:
Error 404 en /auth/login
Error 404 en /auth/login
- Ubicación del proxy: Asegúrate de que
src/proxy.tsexista en la ubicación correcta - Código del proxy: Verifica que el proxy coincida con el código del paso 6
- Reinicia el servidor: Después de crear el archivo proxy, reinicia el servidor de desarrollo
- Comprueba las importaciones: Asegúrate de que la ruta
import { auth0 } from "./lib/auth0"sea correcta
Errores de módulo no encontrado
Errores de módulo no encontrado
- Verifica que los archivos existan: Comprueba que se hayan creado todos los archivos del paso 3
- Revisa las rutas: Asegúrate de que los componentes estén en el directorio
src/components/ - Reinicia TypeScript: Presiona
Cmd+Shift+P(Mac) oCtrl+Shift+P(Windows) y ejecuta “TypeScript: Restart TS Server” - Comprueba las importaciones: Asegúrate de que estás usando
@/components/*(no~/components/*)
Uso avanzado
Cambios importantes en v4
Cambios importantes en v4
- No se necesitan controladores de rutas dinámicas - El proxy monta automáticamente las rutas de autenticación
- Configuración simplificada del cliente -
new Auth0Client()lee automáticamente las variables de entorno - Nuevas rutas - Las rutas están en
/auth/*en lugar de/api/auth/* - Proxy obligatorio - Toda la funcionalidad de autenticación pasa por
proxy.ts - Usa etiquetas
<a>- La navegación debe usar<a href="/auth/login">en lugar de botones con onClick
Rutas de autenticación
El SDK monta automáticamente estas rutas a través del proxy:- El archivo
proxy.tsesté en la ubicación correcta (la raíz del proyecto o dentro desrc/si usas un directoriosrc/) - El proxy esté configurado correctamente con el patrón matcher que se muestra en el paso 6
- El servidor de desarrollo se haya reiniciado después de crear el archivo del proxy
Autenticación del lado del servidor
Autenticación del lado del servidor
- App Router - Componente del servidor
- App Router - Ruta de API
- Pages Router - Página
Autenticación del lado del cliente
Autenticación del lado del cliente
useUser:Protección de rutas de API
Protección de rutas de API
withApiAuthRequired:Uso de tokens de Auth0 con backends de terceros
Uso de tokens de Auth0 con backends de terceros
Obtención del Token de acceso
En el servidor (App Router):Configuración del backend
La mayoría de los servicios de terceros necesitan tu dominio y audiencia de Auth0 para verificar los tokens. En la configuración del backend:AUTH0_AUDIENCE a tu .env.local y configurar el SDK en consecuencia.Solución de problemas con tokens
Sictx.auth.getUserIdentity() devuelve null en tu backend:- Verifica que se esté enviando el token: revisa la pestaña Network de las herramientas de desarrollo del navegador para confirmar que el token se incluya en las solicitudes
- Comprueba el formato del token: asegúrate de enviar el
accessToken, no elidToken - Verifica la configuración del backend: confirma que tu backend tenga el dominio de Auth0 y el ID de cliente correctos
- Comprueba la audiencia: si usas una API de Auth0, asegúrate de que
AUTH0_AUDIENCEesté configurado y coincida con el identificador de tu API - Inspecciona los claims del token: decodifica tu JWT en jwt.io para verificar que contiene los claims esperados