web-dev-qa-db-fra.com

Partager joomla login en multi-domaines

J'ai ajouté plusieurs domaines sur un site Web joomla à l'aide de l'extension VirtualDomains. Tous les domaines sont dans le même site Joomla, mais pointant vers des catégories différentes. J'ai besoin de savoir comment pourrait-il être possible de partager la session entre ces domaines? Je veux dire que lorsqu'un utilisateur se connecte à l'intérieur de DOMAIN1, il reste connecté à DOMAIN2,3 et continue.

Je sais qu'il existe des plugins tels que JSM, mais je pense qu'il existe une solution très simple et meilleure car il ne s'agit pas de sites multiples, mais uniquement de domaines multiples dans un noyau joomla. Voulez-vous m'aider s'il vous plaît avec vos commentaires. Merci d'avance Il suffit de mentionner que je ne souhaite pas utiliser d'extensions tierces, mais uniquement des codes à l'intérieur de joomla ou de ses fonctionnalités.

3
ZAGROX

J'ai découvert comment synchroniser les informations de connexion de tous les sous-domaines de joomla !. Joomla stocke l’identifiant de session d’un utilisateur dans un cookie: entrez la description de l’image ici Session cookie Mais le nom du cookie est une chaîne unique et sa valeur provient de la table #__sessions de votre joomla. Il s'agit de l'identifiant de session de l'utilisateur ou de l'invité. Le nom du cookie change pour chaque installation Joomla. Cela signifie que ce nom sera quelque chose d'autre sur votre site. Pour obtenir le nom du cookie, vous devez appeler la fonction getName () sur l'objet de session en tant que

$ sess = JFactory :: getSession (); $ sessName = $ sess-> getName ();

Maintenant que vous avez le nom du cookie, vous devez définir l'identifiant de session de l'utilisateur connecté à l'autre domaine. Vous pouvez l'obtenir à l'aide de l'ip, lui appliquer différents filtres et le stocker avec l'identifiant de l'utilisateur. Si vous obtenez la même valeur, définissez l'ID de session de cet utilisateur sur le cookie. Maintenant, définir la valeur a déjà connecté l'utilisateur, mais les modifications ne seront pas reflétées avant l'actualisation. Essayez donc d'utiliser

$ app = JFactory :: getApplication ();
$ app-> redirect (JURI :: current ());

juste après avoir défini la valeur, n'oubliez pas de supprimer ip et toutes les informations au moment où l'utilisateur se déconnecte ou qu'un autre utilisateur ne pourra pas se connecter.

C’est comme cela que je suis passé avec ce problème, alors je pensais que cela pourrait aider quelqu'un à l'avenir, si vous trouviez un meilleur moyen de partager, s'il vous plaît.

3
Pratyush