2009-04-22 10 views
0

J'ai deux applications qui exécutent une instance distincte de l'application Zend Framework MVC. Ils sont hébergés sur différents sous-domaines:Comment configurer Zend_Auth pour prendre en charge plusieurs sous-domaines?

news.mydomain.com 
member.mydomain.com 

J'utilise Zend_Auth sur member.mydomain.com pour gérer l'authentification.

Comment configurer ZF sur news.mydomain.com pour capturer les informations d'authentification attribuées dans member.mydomain.com?

Je sais que nous pouvons configurer le paramètre "domaine" de cookie, mais où/comment est-ce que je fais cela dans Zend_Auth?

merci!

Répondre

3

Vous devriez être en mesure de le faire si vous définissez l'espace de noms Zend_Session sur le même espace de noms dans les deux applications. Je crois que vous le mettre lorsque vous instancier la première fois, par exemple:

$sess = new Zend_Session("Mynamespace"); 

Tant que les deux applications fonctionnent sur la même machine, ou si vous avez des trucs de la session cross-système qui se passe (par exemple, memcached sur plusieurs machines), ils devraient pouvoir accéder aux mêmes variables de session.

Si vous ne trouvez où vous définissez le domaine, essayez de le configurer à:

.mydomain.com 

au lieu de

mydomain.com 

Je me souviens quelques étrangetés qui se passe avec plusieurs sous-domaines sur mon installation et semblait répare le. Editer: J'ai trouvé où vous définissez le domaine pour la session de l'utilisateur - curieusement, il est dans Zend_Session.

Zend_Session Configuration Options

0

Tout comme une mise à jour rapide à la réponse de Brett Bender. Pour obtenir ce que je travaille actuellement utiliser simplement:

Zend_Session::setOptions(array(
    'cookie_domain' => '.mydomain.com', 
    'name' => 'MySessionNamespace', 
)); 

Je cet ensemble dans mon bootstrap mais il peut être appelé partout avant la session commence.

Questions connexes