Guia Completo de Configuração CORS com Claude Code
Aprenda sobre o guia completo de configuração CORS usando o Claude Code. Dicas práticas e exemplos de código incluídos.
Implementando Configuração CORS Corretamente com Claude Code
CORS (Cross-Origin Resource Sharing) é um mecanismo que controla a comunicação segura entre origens diferentes. Erros de configuração podem levar a riscos de segurança ou mau funcionamento. Com o Claude Code, você pode implementar configurações CORS adequadas aos seus requisitos com precisão.
Conceitos Básicos de CORS
Fluxo de Preflight Request
> Explique o mecanismo de preflight request do CORS.
> Inclua um diagrama de sequência.
Para “requisições não simples”, o navegador envia um preflight request com o método OPTIONS para confirmar a permissão do servidor. Isso inclui headers personalizados e requisições POST em formato JSON.
Configuração no Express.js
Configuração CORS por Ambiente
> Crie a configuração CORS do Express.js.
> Requisitos:
> - Produção permite apenas origens específicas
> - Desenvolvimento permite localhost
> - Suporte a requisições com autenticação
> - 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;
// Comunicação entre servidores (sem origin) é permitida
if (!origin) return callback(null, true);
if (origins.includes(origin)) {
callback(null, true);
} else {
callback(new Error(`CORS: ${origin} não é 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
});
Configuração no 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' },
],
},
];
},
};
Configuração CORS no Nginx/CDN
> Adicione configuração CORS no proxy reverso 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;
}
Troubleshooting
Erros Comuns e Soluções
Ao colar erros do console do navegador no Claude Code, ele indica imediatamente a causa e o método de correção.
Exemplo de erro:
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 comuns:
- Headers CORS não configurados no lado do servidor
- Usar
Access-Control-Allow-Origin: *comcredentials: true(é necessário especificar uma origem específica) - Não tratar o método OPTIONS do preflight request
Observações de Segurança
Access-Control-Allow-Origin: * deve ser usado apenas em APIs públicas que não requerem autenticação. Para requisições com autenticação, é necessário especificar origens específicas e combinar com credentials: true.
Resumo
Com o Claude Code, você pode implementar configurações CORS adequadas ao ambiente com precisão e eficientizar o troubleshooting. Consulte também Configuração de Headers de Segurança Web e o Guia de Desenvolvimento de API.
Para detalhes sobre CORS, consulte MDN Web Docs - CORS.
Related Posts
Como Turbinar Seus Projetos Pessoais com o Claude Code [Com Exemplos]
Aprenda a acelerar drasticamente projetos de desenvolvimento pessoal usando o Claude Code. Inclui exemplos reais e um workflow prático da ideia ao deploy.
Como Automatizar Refatoração com o Claude Code
Aprenda a automatizar refatoração de código de forma eficiente usando o Claude Code. Inclui prompts práticos e padrões concretos de refatoração para projetos reais.
Implementando Formatacao de Moeda com Claude Code
Aprenda sobre implementing currency formatting usando o Claude Code. Inclui exemplos praticos de codigo.