Opciones de autenticación en Next.js comparadas

Autenticación en Next.js: Auth.js vs Better Auth vs Clerk | We.Inc

Compara Auth.js, Better Auth, Clerk, Supabase Auth y una sesión hecha a mano para Next.js 16, con el código de configuración de cada una y un selector que reduce la lista según lo que necesitas.

Opciones de autenticación en Next.js comparadas

En la mayoría de las apps de Next.js, elige una librería en lugar de escribir la autenticación tú mismo. Clerk es un servicio alojado y el más rápido de configurar, Supabase Auth encaja con apps que ya usan Supabase, y Better Auth o Auth.js guardan los usuarios en tu propia base de datos. Elijas lo que elijas, vuelve a comprobar la sesión en el código de servidor, porque las comprobaciones en el proxy por sí solas no protegen los datos.

De un vistazo

La guía oficial de Next.js enumera doce librerías de autenticación compatibles, más opciones de las que la mayoría quiere. Esta comparativa lo reduce a las cinco vías que de verdad sopesan la mayoría de los equipos, muestra el código mínimo de cada una en el App Router y explica las comprobaciones que tu app sigue necesitando, sea cual sea la librería que gestiona el inicio de sesión.

Preguntas frecuentes

¿Se sigue manteniendo NextAuth?

Auth.js, el proyecto antes llamado NextAuth, dice en su propio sitio que ahora forma parte de Better Auth. Su comando de instalación para Next.js sigue siendo npm install next-auth@beta. Los proyectos nuevos suelen empezar directamente con Better Auth, mientras que las apps existentes con Auth.js siguen funcionando.

¿Puedo proteger las páginas solo con proxy.ts?

No. La documentación de Next.js califica de optimistas las comprobaciones en el proxy: sirven para redirecciones rápidas basadas en una cookie, pero no son una barrera de seguridad. Vuelve a verificar la sesión cerca de los datos, porque las Server Functions y las rutas fuera del matcher nunca pasan por el proxy.

¿Qué opción es la más barata?

Las librerías que guardan los usuarios en tu propia base de datos, como Better Auth o Auth.js, no cobran por usuario; pagas tu base de datos y el envío de emails. Supabase Auth incluye 50,000 usuarios activos mensuales en el plan gratuito a fecha de octubre de 2026. Consulta la página de precios de Clerk para ver su cuota gratuita actual.

¿Funcionan con Next.js 16?

Sí. Tanto Clerk como Supabase documentan proxy.ts para Next.js 16 y middleware.ts para versiones anteriores, y Better Auth ofrece un helper de cookies para el proxy más una comprobación completa de la sesión para el código de servidor.

¿Sesiones sin estado o en base de datos?

Una cookie firmada (sin estado) es más sencilla y no necesita consultas, pero no puedes revocarla antes de que caduque. Una sesión en base de datos cuesta una consulta por comprobación y permite a los usuarios cerrar sesión en todos sus dispositivos. Muchas librerías te dejan elegir.

Alojado frente a autoalojado

Si ya usas Supabase

Escribir la tuya

Configuración mínima de cada opción

Clerk

Instala @clerk/nextjs y define NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY y CLERK_SECRET_KEY. En Next.js 16 el archivo de middleware es proxy.ts.

Supabase Auth

Un cliente de servidor creado en cada petición a partir del almacén de cookies, con la clave publicable. getClaims() verifica el token antes de que te fíes de él.

Better Auth

Monta el handler en una ruta catch-all y luego lee la sesión en el servidor con las cabeceras de la petición.

Auth.js (next-auth v5 beta)

auth.ts exporta handlers, auth, signIn y signOut. Define AUTH_SECRET (npx auth secret crea uno).

Tu propia cookie de sesión firmada

Una versión corta del patrón de la guía de Next.js: jose firma el contenido y la cookie es HttpOnly, Secure y SameSite=Lax.

Dónde comprobar la sesión

Comprobaciones de autenticación según el lugar (de la guía de autenticación de Next.js)

Clerk

La vía más rápida a una página de inicio de sesión que funcione; los usuarios viven en Clerk.

Supabase Auth

Los usuarios están en tu Postgres de Supabase; los planes de pago cobran los usuarios que superen la cantidad incluida.

Better Auth

Librería dentro de tu app, escribe en tu base de datos, con plugins para extras.

Opción veterana, ahora parte de Better Auth; la v5 se sigue publicando como beta.

Hazlo tú mismo

Control total; escribes cada flujo y te encargas de que sea seguro.

Los registros de usuarios se quedan en una base de datos que controlo

Pantallas de inicio de sesión y de perfil ya hechas

Sin tarifa por usuario del proveedor de autenticación

Inicio de sesión vinculado a la seguridad a nivel de fila de Postgres

Selector de opciones de autenticación

Marca los requisitos que te importan y la lista mostrará solo las opciones que los cumplen todos.

Requisitos

Ninguna opción cumple todos los requisitos marcados. Desmarca uno para comparar.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio