JeuWeb - Crée ton jeu par navigateur
Partage de session entre site, quelle implémentation? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Partage de session entre site, quelle implémentation? (/showthread.php?tid=7663)



Partage de session entre site, quelle implémentation? - Argorate - 30-05-2016

Bonjour,

je voulais savoir quelle méthode utiliseriez vous pour le partage de compte/session au travers de plusieurs sites/jeux?

Méthode 1 : une base de donnée qui contient la table "account" commun a tous les sites.

Avantages : Un seul endroit où stocker le nom de compte, le courriel et le passe
désavantages : Demande une connexion à une bd différente de celle du jeu.


Méthode 2 : Une table classique dans chaque base de chaque site/jeux, mais lorsqu'il y a création sur un site, il y a synchronisation et création automatique dans les tables des autres sites.

Avantages : utilise le système d'authentification classique, ne nécessite pas de connexion à plusieurs base de donnée.
désavantages : Redondance des données et oblige à synchroniser en cas de changement de mot de passe par exemple.


Une idée d'une méthode 3?



Ensuite, comment faire pour transmettre la session d'un site à l'autre?
Exemple : je m'inscrit et me connecte sur le site 1, puis je vais sur le site 2. Il faudrait être déjà connecté sur le site 2.


RE: Partage de session entre site, quelle implémentation? - Prélude - 31-05-2016

Sans trop réfléchir, je te proposerais bien de jouer avec un serveur Memcached.


RE: Partage de session entre site, quelle implémentation? - Xenos - 31-05-2016

Salut,

Le partage de compte (pas besoin de se réinscrire) et le partage de session (pas besoin de se reconnecter), je ne les ferai pas pareil (car pas la même chose).

Pour les comptes, une table de BDD centralisée, à laquelle chaque compte de jeu va se lier (ce qui permet de se connecter à un compte d'un jeu grâce à ces infos centralisées, mais ce qui permettrait aussi de lier le compte de jeu à FB, OpenID, ou à un login/pass habituel) me semble bien.

Pour les session, c'est des technos de partage que je ne connais pas (genre "load balancer de sessions PHP" si j'avais bien compris à l'époque). Donc en gros, un outils/programme/serveur tiers transparent coté code.

Sinon, pour la connexion auto sur le site 2 (qui n'est donc pas un partage de session, mais une ouverture automatisée d'une nouvelle session), soit les FW le proposent déjà, soit tu peux aller t'inspirer d'OpenID ou de FB.
"Sauce maison", je dirai: je vais sur le site1, qui génère un token en BDD & le lie à ma session (PHP ou autre) et m'ouvre le site central siteC (redirection) en lui passant ce token, siteC me reconnait, il envoie en backend le n° de compte centralisé à site1 avec le token, site1 reconnait le token et sauve le n° de compte centralisé (et les infos du compte centralisé si besoin), siteC me redirige vers site1, qui reconnait ma session, va chercher le token lié en BDD, récupère le compte centralisé lié et me log.


Remarque: Je me poserai quand même avant tout la question de la pertinence de ce système: inutile d'introduire des lourdeurs de code et des risques de sécurité si c'est pour partage 30 comptes entre 2 jeux. J'irai plutôt me brancher sur OpenID dans ce cas là (plus simple, plus sûr, plus d'impact car on peut se faire mettre en avant par OpenID)


RE: Partage de session entre site, quelle implémentation? - Sephi-Chan - 31-05-2016

Tu peux créer un fournisseur d'identité OAuth. C'est ce qu'utilisent Facebook, Twitter, etc. pour les "Se connecter avec…".


RE: Partage de session entre site, quelle implémentation? - Ter Rowan - 02-06-2016

une bdd unique pour le stockage, de la fédération d'identité pour l'opérationnel