Las Server Actions en Next.js 16 son poderosas, pero si no validas la autenticación, dejas la puerta abierta a accesos indebidos.

El truco

// ANTES (mal)
export async function POST(request) {
  const data = await request.json();
  // Procesar datos directamente
  return NextResponse.json({ success: true });
}

// DESPUÉS (bien)
export async function POST(request) {
  // Verificar autenticación
  const isAuthenticated = await checkAuth(request);
  if (!isAuthenticated) {
    return NextResponse.json({ error: 'No autorizado' }, { status: 401 });
  }

  const data = await request.json();
  // Procesar datos si está autenticado
  return NextResponse.json({ success: true });
}

async function checkAuth(request) {
  // Implementar lógica de verificación
  // Ejemplo: verificar token en encabezados
  const token = request.headers.get('authorization');
  return token && token === "tu_token_seguro";
}

Este snippet asegura que solo los usuarios autenticados puedan ejecutar acciones en el servidor. La función checkAuth comprueba el token de autorización en los encabezados de la solicitud antes de procesar cualquier dato. Si el token es inválido o está ausente, se devuelve un estado 401, prohibiendo el acceso no autorizado.

Implementar un chequeo de autenticación robusto es esencial para proteger tus Server Actions de Next.js. No caigas en la trampa de omitirlo.