Mon copain Carsten Lau est venu avec une idée intéressante sur la façon de lire les cookies inter-domaines.
Situation: vous souhaitez lire un cookie du domaine "A" défini sur le domaine "B". Idée: à partir du client sur le domaine "A", vous exécutez une requête get vers une ressource dynamique sur le domaine "B" - f.e. une image ou javascript, qui sur le serveur "B" est en fait un langage de programmation capable de lire des cookies comme PHP, Java etc. Avec cette requête, vous envoyez un identifiant unique comme un identifiant de session Ainsi, le code sur le client qui regarde un site sur le domaine "A" pourrait ressembler à ceci:
<img src="www.domainB.com/?getCookie.php?sessionID=1234">
Vient maintenant la partie amusante, le serveur B lit côté serveur le cookie défini par le domaine "B" et écrit le résultat avec l'identifiant de session fourni soit dans une base de données accessible par le domaine "A" ou renvoie une réponse qui contient les informations sur le cookie au client sur le domaine "A" qui l'envoie ensuite via AJAX au serveur "A".
Je suis presque sûr qu'il y a un défaut que nous n'avons pas encore trouvé. Personnellement, je pense que le serveur "B" ne pourra pas lire les informations sur les cookies car l'URL du client-navigateur pointe vers le domaine "A", mais bien sûr la demande "getCookie" expliquée ci-dessus pointe vers "B".
Veuillez nous dire ce que vous en pensez, pourquoi cela fonctionne ou pourquoi cela ne fonctionne pas. Une petite preuve de concept a été, à ma grande surprise, réussie.
C'est normal, car vous contrôlez les 2 domaines. C'est ainsi que la plupart des sites Web parviennent à une authentification unique entre domaines. Mais si vous ne contrôlez pas le deuxième domaine, vous ne pouvez pas en lire les cookies.
J'ai mis en place un package NPM pour aider à l'utilisation des cookies inter-domaines/localStorage. Je sais que ce message est un peu ancien, mais j'ai pensé partager, au cas où quelqu'un d'autre aurait besoin d'aide avec ceci:
En utilisant un iframe hébergé sur le domaine A, vous pouvez stocker toutes vos données utilisateur sur le domaine A et référencer ces données en envoyant des demandes à l'iframe du domaine A.
Ainsi, les domaines B, C, etc. peuvent injecter l'iframe et y envoyer des requêtes pour stocker et accéder aux données souhaitées. Le domaine A devient le hub de toutes les données partagées.
Avec une liste blanche de domaines à l'intérieur du domaine A, vous pouvez vous assurer que seuls vos sites dépendants peuvent accéder aux données du domaine A.
L'astuce consiste à avoir le code à l'intérieur de l'iframe sur le domaine A qui est capable de reconnaître les données qui sont demandées. Le README dans le module NPM ci-dessus va plus en profondeur dans la procédure.
J'espère que cela t'aides!