2010-11-24 4 views
2

Je souhaite définir un domaine de cookies 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 l'obtenir. Le problème est cependant que notre site contient plusieurs sous-sites qui ont des noms de domaine alternatifs. Donc, ma question est, comment puis-je gérer cela? Je voudrais avoir un domaine de cookie standard par domaine, car je crains que les navigateurs comme IE8 rejettent les cookies qui ne proviennent pas du même domaine (plus rapide). Je vais faire des recherches moi-même, mais je me demandais si quelqu'un avait peut-être de l'expérience.Définition d'un domaine de cookies par défaut pour le site Django avec plusieurs noms de domaine

Mise à jour:

Ce que je veux vraiment faire est de stocker des cookies de django pour domain1 quand je visite domain1.com etcetera pour les autres domaines. Je pense qu'il devrait être aussi facile que d'utiliser le domaine client actuel lors du stockage des cookies. Je doute cependant que django offre cette fonctionnalité sans modification ... Peut-être que je pourrais construire une classe de middleware qui change le paramètre global au domaine actuel ..

Mise à jour:

Cette question et la réponse m'a aidé : Changing Django settings variable dynamically based on request for multiple site Merci pour l'aide :)

Répondre

5

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 récupérer les cookies enregistrés sur .yahoo.com.

Si vous utilisez un site Web avec plusieurs sous-sites, s'ils partagent tous le même domaine de base (site1.domain.com, site2.domain.com, etc.), vous devez utiliser ce domaine pour SESSION_COOKIE_DOMAIN. Mais s'ils ont des domaines différents, il est fondamentalement impossible pour eux de partager des cookies sans utiliser une autre méthode pour obtenir les cookies. Vous pouvez, par exemple, inclure des images ou des scripts qui pointent vers un site central, et ce site peut stocker et récupérer les cookies, qui sont mis à disposition du 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 ces autres noms de domaine vers le domaine standard partagé. C'est facile à faire avec mod_rewrite.

+0

Merci pour la réponse, cela efface les choses! Éditera ma question à plus explicitement ce que je veux faire :) –

Questions connexes