Configurar la autenticación en Next.js 16 puede ser complicado si no ajustas adecuadamente la sesión o el proveedor de autenticación.

El truco

Código ANTES (mal)

// pages/api/auth/[...nextauth].js
import NextAuth from 'next-auth';
import Providers from 'next-auth/providers';

export default NextAuth({
  providers: [
    Providers.GitHub({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
    }),
  ],
  session: {
    jwt: true,
  },
});

Código DESPUÉS (bien)

// pages/api/auth/[...nextauth].js
import NextAuth from 'next-auth';
import GitHubProvider from 'next-auth/providers/github';

export default NextAuth({
  providers: [
    GitHubProvider({
      clientId: process.env.GITHUB_CLIENT_ID,
      clientSecret: process.env.GITHUB_CLIENT_SECRET,
    }),
  ],
  session: {
    strategy: 'jwt', // Asegúrate de usar el campo 'strategy'
  },
});

El problema común aquí es no especificar correctamente la estrategia de sesión. En Next.js 16, el campo session ha sido actualizado y ahora requiere que especifiques strategy: 'jwt' para usar JWTs, en lugar de simplemente jwt: true. Esto evita errores inesperados en la autenticación.

Refactoriza tu configuración asegurándote de que los proveedores y la estrategia de autenticación estén correctamente definidos para evitar problemas molestos.