# 🚀 Guia Rápido CORS - GIMOV API

## Configurações Implementadas

### ✅ **Configuração Atual (Recomendada)**
- **Desenvolvimento**: Permite qualquer origem (`origin: true`)
- **Produção**: Apenas domínios específicos da GIMOV
- **Automática**: Detecta ambiente via `NODE_ENV`

### 📁 **Arquivos Importantes**
- `src/app.js` - Configuração principal aplicada
- `config/cors.js` - Configurações centralizadas (novo)
- `scripts/test-cors-simple.js` - Teste automatizado (novo)

## 🛠️ Como Usar

### **1. Modo Atual (Já Funcionando)**
```bash
npm run dev  # Desenvolvimento com CORS permissivo
npm start    # Produção com CORS restritivo
```

### **2. Testar CORS**
```bash
npm run test-cors          # Testa localhost
npm run test-cors-prod     # Testa produção
```

### **3. Configurações Alternativas**

#### 💡 **Super Simples (Uma linha)**
```javascript
app.use(cors({ origin: true, credentials: true }));
```

#### 🔧 **Personalizada**
```javascript
const { getCorsConfig } = require('./config/cors');
app.use(cors(getCorsConfig('development')));
```

#### 🔓 **Debug Mode (Muito Permissivo)**
```javascript
const { getCorsConfig } = require('./config/cors');
app.use(cors(getCorsConfig('permissive')));
```

## 🚨 Soluções para Problemas Comuns

### **Erro: "CORS policy blocks request"**
1. Verificar se a origem está na lista de domínios permitidos
2. Usar modo desenvolvimento: `NODE_ENV=development npm run dev`
3. Testar com configuração permissiva temporariamente

### **Erro: "Preflight request failed"**
1. Verificar se métodos estão permitidos
2. Headers customizados podem precisar ser adicionados
3. Usar o middleware adicional já configurado

### **Teste Rápido no Navegador**
```javascript
// Cole no console do navegador
fetch('http://localhost:3001/', {
  method: 'GET',
  headers: { 'Content-Type': 'application/json' }
})
.then(r => console.log('✅ CORS OK:', r.status))
.catch(e => console.log('❌ CORS Error:', e.message));
```

## 📝 Customizações Fáceis

### **Adicionar Novo Domínio**
Editar `config/cors.js` linha `origin: [...]`

### **Adicionar Header Customizado**
Editar `config/cors.js` linha `allowedHeaders: [...]`

### **Modo Debug**
```javascript
// Em app.js, adicionar antes do cors():
app.use((req, res, next) => {
  console.log('CORS DEBUG:', req.method, req.headers.origin);
  next();
});
```

## 🔧 Comandos Úteis

```bash
# Testar com curl
curl -H "Origin: http://localhost:3000" http://localhost:3001/

# Ver logs em tempo real
npm run dev | grep -i cors

# Testar produção local
NODE_ENV=production npm run dev
```

## 📋 Checklist de Verificação

- [ ] Servidor inicia sem erros
- [ ] `npm run test-cors` passa
- [ ] Frontend consegue fazer requisições
- [ ] Não há erros CORS no console do navegador
- [ ] Requisições OPTIONS retornam 200

---

💡 **Dica**: Para desenvolvimento rápido, use `NODE_ENV=development` que permite qualquer origem!