Bonjour à tous,
Tout d'abord je remercie tout ceux qui prendront le temps de lire ce message.
Je développe actuellement une application MEAN stack. J'utilise donc Nodejs pour gérer le backend. J'ai un CORS qui contrôle l'origine des requêtes.
En local, tout fonctionne correctement.
Je dois maintenant déployer l'application sur un serveur web (j'utilise NGINX) et c'est la que je rencontre des difficultés.
Lorsque que je build l'application et que je lance le back, l'application en ligne fonctionne correctement.
Au bout d'un moment, mon CORS bloque les requête provenant de mon front en prenant pour origin autorisée localhost:4200.
J'ai supposé que le problème venait du fait que lorsque je retravaille sur le projet en local, le cors reprend localhost:4200 comme origin autorisé, mais je ne comprends pas comment c'est possible puisque mon application est déployée sur un serveur distant.
Je vous met les bouts de code concernés:
Mon index back :
Lorsque je travaille en local il s'agit du même code. La seul chose qui change, c'est let origin = 'https://nomdomainedemonapp.co' qui devient let origin = 'http://localhost:4200'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 let origin = 'https://nomdomainedemonapp.co' const options = { cors: { origin: origin, methods: ["GET", "POST"], allowedHeaders: ["my-custom-header"], credentials: true }, allowEIO3: true }; const io = require("socket.io")(server, options);
Les headers:
Ma configuration nginx:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content, Accept, Content-Type, Authorization'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS'); next(); });
J'apprends tout ca seule donc il se peut que je ne sois pas dans les bonnes pratiques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 location /soc{ proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Access-Control-Allow-Origin *; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://127.0.0.1:3000;
Par avance un très grand merci
Partager