Guide complet de configuration CORS avec Claude Code
Découvrez le guide complet de configuration CORS avec Claude Code. Conseils pratiques et exemples de code inclus.
Implémenter correctement la configuration CORS avec Claude Code
CORS (Cross-Origin Resource Sharing) est un mécanisme qui contrôle la communication sécurisée entre différentes origines. Une mauvaise configuration peut entraîner des risques de sécurité ou des dysfonctionnements. Avec Claude Code, vous pouvez implémenter avec précision une configuration CORS adaptée à vos besoins.
Concepts fondamentaux de CORS
Flux de requête preflight
> Explique le mécanisme des requêtes preflight CORS.
> Inclus un diagramme de séquence.
Le navigateur envoie une requête preflight avec la méthode OPTIONS pour les « requêtes non simples », afin de vérifier l’autorisation du serveur. Cela concerne les en-têtes personnalisés, les requêtes POST au format JSON, etc.
Configuration avec Express.js
Configuration CORS par environnement
> Crée la configuration CORS pour Express.js.
> Exigences :
> - En production, n'autoriser que des origines spécifiques
> - En développement, autoriser localhost
> - Support des requêtes avec authentification
> - Cache 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;
// Communication serveur-serveur (sans origin) autorisée
if (!origin) return callback(null, true);
if (origins.includes(origin)) {
callback(null, true);
} else {
callback(new Error(`CORS : ${origin} n'est pas autorisé`));
}
},
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 preflight : 24 heures
});
Configuration avec 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' },
],
},
];
},
};
Configuration CORS avec Nginx/CDN
> Ajoute la configuration CORS sur le reverse proxy 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;
}
Dépannage
Erreurs courantes et solutions
En collant l’erreur de la console du navigateur à Claude Code, il vous indique immédiatement la cause et la méthode de correction.
Exemple d’erreur :
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.
Causes courantes :
- Les en-têtes CORS ne sont pas configurés côté serveur
- Utilisation de
Access-Control-Allow-Origin: *aveccredentials: true(il faut spécifier une origine précise) - La méthode OPTIONS pour les requêtes preflight n’est pas gérée
Notes de sécurité
Access-Control-Allow-Origin: * ne doit être utilisé que pour les API publiques ne nécessitant pas d’authentification. Pour les requêtes avec authentification, vous devez toujours spécifier une origine précise et la combiner avec credentials: true.
Résumé
Avec Claude Code, vous pouvez implémenter avec précision la configuration CORS adaptée à votre environnement et optimiser le dépannage. Consultez aussi la configuration des en-têtes de sécurité web et le guide de développement API.
Pour plus de détails sur CORS, consultez MDN Web Docs - CORS.
PDF gratuit : aide-mémoire Claude Code en 5 minutes
Laissez simplement votre e-mail et nous vous enverrons immédiatement l'aide-mémoire A4 en PDF.
Nous traitons vos données avec soin et n'envoyons jamais de spam.
À propos de l'auteur
Masa
Ingénieur passionné par Claude Code. Il gère claudecode-lab.com, un média tech en 10 langues avec plus de 2 000 pages.
Articles similaires
7 vérifications avant de publier chaque jour un article multilingue sur Claude Code
Une checklist pratique pour publier des articles multilingues sur Claude Code chaque jour sans oublier une langue, casser les CTA ou laisser l’ancien contenu en production.
Codex Automations : confier l'analyse, les articles et le deploiement a l'IA
Guide pratique pour utiliser Codex Automations dans une operation de contenu orientee monetisation.
Claude Code × GCP Cloud Functions Guide Complet | Développement Serverless Ultra-Rapide
Optimisez GCP Cloud Functions avec Claude Code. Implémentez des triggers HTTP/Pub/Sub/Firestore, des tests locaux et l'automatisation des déploiements avec des exemples de code réels de l'expérience de Masa.