2009-08-21 15 views
1

J'ai site principal example.com où les utilisateurs peuvent s'inscrire et se connecter ou simplement se connecter avec openid. Les utilisateurs connectés peuvent créer leurs propres sites avec des sous-domaines comme mysite.example.com. Chaque utilisateur peut avoir plusieurs sites. Chaque site est l'application cakephp. Chaque application de gâteau a sa propre ACL. Comment puis-je déployer l'autorisation afin que les utilisateurs connectés au site principal, sont également connectés à leurs propres sites.Comment déployer l'autorisation entre plusieurs applications cakephp?

Répondre

1

Deux principales exigences ici:

  1. cookies côté client doit être valable pour toutes les applications

    Vérifiez le cookie fixé par CakePHP sur le côté client (FireCookie est bon pour cela). La partie domain du cookie doit indiquer .example.com (et non www.example.com) pour qu'elle s'applique aux sous-domaines. Cela pourrait fonctionner dans bootstrap.php:

    ini_set('session.cookie_domain', '.example.com'); 
    
  2. stockage de session côté serveur doit être accessible par toutes les applications

    Dans core.php pour chaque application, définissez un stockage de session commune. Les options sont:

    • php: Ceci utilisera le répertoire de stockage de session défini par PHP, qui devrait être le même pour toutes les applications.
    • database: Si toutes les applications utilisent la même base de données, cela pourrait être une option.
    • cake: Pour que cela fonctionne, vous devez définir un répertoire commun /tmp pour chaque application.
+0

Voici mes pensées. ini_set ('session.cookie_domain', '.example.com') - pour cela je pense que vous avez seulement besoin de configurer :: write ('Security.level', 'low') ;. En ce qui concerne 2. (côté serveur), l'activation du stockage de session commun pour toutes les applications signifie que vous devrez contrôler l'accès à l'application au niveau de l'application et que cela pourrait perturber votre liste de contrôle d'accès. J'ai compris que le meilleur moyen serait de stocker la session dans la base de données sur les termes de l'application et de le distribuer à travers le système à d'autres applications qui appartiennent à un utilisateur donné. –

+0

pouvons-nous utiliser la session commune pour 1.3 et 2.x? –

+0

Doit être possible .. 'Config/Schema/sessions.php' semble identique dans les deux versions. – deizel

Questions connexes