Guia completa de configuracion CORS con Claude Code
Aprende sobre la configuracion completa de CORS usando Claude Code. Incluye consejos practicos y ejemplos de codigo.
Implementando correctamente la configuracion CORS con Claude Code
CORS (Cross-Origin Resource Sharing) es un mecanismo que controla la comunicacion segura entre diferentes origenes. Los errores de configuracion pueden provocar riesgos de seguridad o mal funcionamiento. Con Claude Code, puedes implementar con precision la configuracion CORS adecuada a tus requisitos.
Conceptos basicos de CORS
Flujo de solicitud preflight
> Explica el mecanismo de solicitudes preflight de CORS.
> Incluye un diagrama de secuencia.
El navegador envia una solicitud preflight con el metodo OPTIONS para solicitudes “no simples”, verificando la autorizacion del servidor. Esto aplica a encabezados personalizados, solicitudes POST con formato JSON, entre otros.
Configuracion en Express.js
Configuracion CORS por entorno
> Crea la configuracion CORS para Express.js.
> Requisitos:
> - En produccion solo permitir origenes especificos
> - En desarrollo permitir localhost
> - Soporte para solicitudes con autenticacion
> - Cache de preflight
// src/middleware/cors.ts
import cors from 'cors';
const allowedOrigins: Record<string, string[]> = {
production: [
'https://myapp.example.com',
'https://admin.example.com',
],
development: [
'http://localhost:3000',
'http://localhost:5173',
],
};
export const corsMiddleware = cors({
origin: (origin, callback) => {
const env = process.env.NODE_ENV || 'development';
const origins = allowedOrigins[env] || allowedOrigins.development;
// Permitir comunicacion entre servidores (sin origin)
if (!origin) return callback(null, true);
if (origins.includes(origin)) {
callback(null, true);
} else {
callback(new Error(`CORS: ${origin} no esta permitido`));
}
},
credentials: true,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'],
allowedHeaders: ['Content-Type', 'Authorization', 'X-Request-ID'],
exposedHeaders: ['X-Total-Count', 'X-Request-ID'],
maxAge: 86400, // Cache de preflight: 24 horas
});
Configuracion en Next.js
// next.config.js
const nextConfig = {
async headers() {
return [
{
source: '/api/:path*',
headers: [
{ key: 'Access-Control-Allow-Origin', value: 'https://myapp.example.com' },
{ key: 'Access-Control-Allow-Methods', value: 'GET,POST,PUT,DELETE' },
{ key: 'Access-Control-Allow-Headers', value: 'Content-Type,Authorization' },
{ key: 'Access-Control-Allow-Credentials', value: 'true' },
{ key: 'Access-Control-Max-Age', value: '86400' },
],
},
];
},
};
Configuracion CORS en Nginx/CDN
> Agrega configuracion CORS al reverse proxy de Nginx.
location /api/ {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Max-Age' 86400;
return 204;
}
add_header 'Access-Control-Allow-Origin' $http_origin always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
proxy_pass http://backend;
}
Solucion de problemas
Errores comunes y soluciones
Si pegas el error de la consola del navegador en Claude Code, te indicara inmediatamente la causa y el metodo de correccion.
Ejemplo de error:
Access to XMLHttpRequest at 'https://api.example.com/data' from origin
'https://myapp.com' has been blocked by CORS policy: No
'Access-Control-Allow-Origin' header is present on the requested resource.
Causas comunes:
- No se han configurado los encabezados CORS en el servidor
- Se especifica
Access-Control-Allow-Origin: *al usarcredentials: true(se debe especificar un origen especifico) - No se maneja el metodo OPTIONS de la solicitud preflight
Consideraciones de seguridad
Access-Control-Allow-Origin: * solo debe usarse para APIs publicas que no requieren autenticacion. Para solicitudes con autenticacion, siempre debes especificar un origen concreto y combinarlo con credentials: true.
Resumen
Con Claude Code, puedes implementar con precision la configuracion CORS segun el entorno y optimizar la solucion de problemas. Consulta tambien la configuracion de encabezados de seguridad web y la guia de desarrollo de API.
Para mas detalles sobre CORS, consulta MDN Web Docs - CORS.
Related Posts
Cómo potenciar tus proyectos personales con Claude Code [Con ejemplos]
Aprende a acelerar drásticamente tus proyectos personales de desarrollo usando Claude Code. Incluye ejemplos reales y un flujo de trabajo práctico desde la idea hasta el despliegue.
Cómo automatizar la refactorización con Claude Code
Aprende a automatizar eficientemente la refactorización de código usando Claude Code. Incluye prompts prácticos y patrones concretos de refactorización para proyectos reales.
Implementacion de formato de moneda con Claude Code
Aprende sobre la implementacion de formato de moneda usando Claude Code. Incluye ejemplos de codigo practicos.