Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1274 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  CORS cross-domain avec cookie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

CORS cross-domain avec cookie

n°2272982
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 07-01-2016 à 22:49:40  profilanswer
 

Hello, [:le_chien:4]  
 
Je rencontre à un problème de CORS avec Firefox/Safari (pas de soucis avec les autres browsers principaux).
J'ai besoin de pouvoir faire des requêtes ajax CORS, cross-domain, avec envoi de cookie.
 
Concrètement :
 
Situation actuelle :
Lorsque je me log sur www.mon-site.com, un POST en ajax est fait sur api.mon-network.net avec l'envoi des identifiants.
Ceci me permet d'avoir un cookie valide sur *.mon-network.net ensuite stocké par mon navigateur.
 
Utilisation actuelle:
sur www.mon-site.com/caller_ajax, je fais un appel (jquery) ajax vers api.mon-network.net (avec l'option 'withCredentials').
1) Une pré-requête de préflight (OPTIONS) est faite, sans envoyer les crédentials (mais c'est pas grave, je me suis débrouillé sur le serveur en face pour que ça passe).
2) La vraie requête GET/POST est faite ensuite, en envoyant les credentials (le fameux cookie valide sur *.mon-network.net )... et ceci fonctionne sous Chrome, Edge, IE11.
 
Soucis:
- Firefox ne l'envoi pas avec les settings par défaut ("cookie tiers refusé", pour que ça fonctionne je dois baisser le settings à "seulement des sites visités", pas terrible comme solution)
- Safari n'envoi jamais le cookie, peu importe le settings.
 
Précision :
Le problème ne vient pas de headers CORS mal settés, j'ai passé pas mal de temps dessus, tout est niquel même pour la requête OPTIONS (confirmé avec HTTPIE), que le browser envoit le cookie ou pas avec l'OPTIONS.
Et puis le fait que ça fonctionne avec Chrome est plutôt un signe que l'erreur n'est pas là.
 
J'ai quelques idées de solutions, mais en voyez-vous / connaissez-vous une qui les dépasse ? Une best practice sur le sujet ?
 
Dans ce que j'ai pensé, il y aurait :
- faire un CNAME api.mon-site.com vers api.mon-network.net
- garder connaissance côté www.mon-site.com de la sessionID d'*.mon-network.net, et la balancer dans l'url de l'appel ajax (...&PHPSESSID= ... le truc à l'ancienne :o )
- laisser tomber l'idée de faire l'appel en front (ajax) et la faire en back-end, genre en php (curl/guzzle...)
- en ajax les browsers refusent de faire un setRequestHeader('Cookie') mais je pourrais peut-être envoyer un header 'Biscuit' qui lui n'est pas blacklisté, et me demerder en face pour ré-interpreter ça. [:tinostar]  
 
Bref, vous voyez pourquoi je cherche la best-practice [:petrus75]  
 
Merci d'avance.


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
mood
Publicité
Posté le 07-01-2016 à 22:49:40  profilanswer
 

n°2272985
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 08-01-2016 à 00:27:40  profilanswer
 

mais lol.
 
 
nginx :

Citation :


    location ~ ^/app\.php(/|$) {
        ....
        fastcgi_param HTTP_COOKIE $http_biscuit;
        ....
    }


 
 
httpie:

Citation :


http -h https://app.mon-network.net/truc
HTTP/1.1 403 Forbidden

Citation :


http -h https://app.mon-network.net/truc 'Biscuit:PHPSESSID=12345678901234567890'
HTTP/1.1 200 OK


 
[:rofl]


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  CORS cross-domain avec cookie

 

Sujets relatifs
Exemple de création de cookie via un formulaire dans jspRewrite URL vers second domain via .htaccess ?
Faire une redirection php avec un cookie laissant passé googlebot ?CMake, fichier toolchain et cross compilation
Passage paramètre Cookie JavascriptWeb Service WCF et Cross Domain Request
PHP, cookie, path.[Ada] Cookie manquant ou vide
Problème récupération de cookie [edité mais non résolu] 
Plus de sujets relatifs à : CORS cross-domain avec cookie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR