2 votes

Définir le domaine de cookie par défaut pour un site Django avec plusieurs noms de domaine

Je voudrais définir un domaine de cookie spécifique pour mes cookies, car cela pourrait résoudre certains problèmes que notre site semble rencontrer avec IE8. Django semble avoir un paramètre appelé SESSION_COOKIE_DOMAIN qui peut être défini pour obtenir cela. Le problème, cependant, est que notre site contient plusieurs sous-sites qui ont des noms de domaine alternatifs. Ma question est donc la suivante : comment puis-je gérer cela ? J'aimerais avoir un domaine de cookie standard par domaine, car je crains que des navigateurs comme IE8 rejettent les cookies qui ne proviennent pas du même domaine (plus rapidement).

Je vais faire des recherches moi-même, mais je me demandais si quelqu'un avait peut-être de l'expérience.

Mise à jour :

En fait, ce que je veux faire, c'est que django stocke les cookies pour le domaine 1 lorsque je visite domain1.com, etc. pour les autres domaines. Je pense que cela devrait être aussi simple que d'utiliser le domaine client actuel lors du stockage des cookies. Je doute cependant que django offre une telle fonctionnalité sans modification... Peut-être pourrais-je construire une classe middleware qui modifie le paramètre global en fonction du domaine actuel...

Mise à jour :

Cette question et cette réponse m'ont aidé : Modification dynamique de la variable de paramètres Django en fonction de la demande pour plusieurs sites Merci pour l'aide :)

6voto

Jordan Reiter Points 8679

Les cookies ne peuvent pas être stockés ou récupérés pour d'autres noms de domaine. En d'autres termes, si je suis sur yahoo.com, je ne peux pas obtenir le cookie pour google.com. Cependant, foo.yahoo.com et bar.yahoo.com peuvent tous deux récupérer les cookies enregistrés à .yahoo.com.

Si vous exploitez un site Web avec plusieurs sous-sites, s'ils partagent tous le même domaine de base (c'est-à-dire site1.domain.com, site2.domain.com, etc.), vous devriez utiliser ce domaine pour SESSION_COOKIE_DOMAIN. Mais s'ils ont des domaines différents, il est pratiquement impossible pour eux de partager des cookies sans utiliser une autre méthode pour les obtenir. Vous pouvez, par exemple, inclure des images ou des scripts pointant vers un site central, et ce site peut stocker et récupérer les cookies, qui sont rendus disponibles au reste de la page via JavaScript.

Si vous devez conserver ces noms de domaine alternatifs, vous pouvez toujours configurer votre serveur Web pour rediriger immédiatement depuis ces noms de domaine alternatifs vers le domaine standard partagé. C'est facile à faire avec mod_rewrite.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X