[Intéressant] Login multi-sites

WRInaute discret
Bonjour à tous,
Bonjour à toutes,

J'ai un site principal (disons machin.com) sur lequel les membres peuvent créer un compte.

J'aimerai créer d'autres sites (ex : truc.com, chose.com et bidule.com) sur lesquels les membres puissent se connecter en utilisant le login/mot de passe du site principal...

(Pour éviter de leur faire créer 50 comptes...)

J'ai donc pensé à faire une sorte d'API, en réalité un appel à la page -http://www.machin.com/login.php sur lequel le site complémentaire soumet (en POST) le login et mot de passe du membre.

En retour, cette page renvoie 0 si le compte n'existe pas/plus,
1 si le compte est OK,
2 si le compte est désactivé, etc.

Seulement voilà : j'ai peur que cela entraine une trop grande quantité d'appels à "l'API"... Et vu que celle-ci check à chaque fois sur la base de données...

Auriez-vous, à tout hasard, une solution à soumettre ?

J'ai pensé à créer, pour chaque membre, un fichier .php de ce type :
<?php
$login='machin';
$pass='le pass'; // en md5
?>

Ainsi, la page "login.php" n'a plus qu'à inclure le fichier (le créer une bonne fois pour toute si elle n'existe pas encore) et vérifier que $login = $_POST['login'] et $pass = $_POST['pass']

Qu'en pensez-vous ? :)

Merci par avance !
 
WRInaute discret
Bonsoir,

pour quelle raison bcp d'appels à l'API seraient un problème ?
Un serveur Apache n'a peur de rien :D

Franchement, ta première idée est la meilleure:
centraliser les comptes membres sur une SEULE table et passer par une API.
En terme de maintenance, sécurité et surveillance, c'est la meilleure solution.
 
WRInaute discret
Bonsoir :)

Au final, j'ai opté pour une solution très simple :

Lorsque le membre s'identifie sur un site, mon script appelle une sorte d'API située sur le site principal ;
L'API vérifie la combinaison login/pass (j'envoie également un mot de passe API :)) ;
Si c'est OK, je crée la session ; Sinon, je demande au membre de bien vouloir vérifier ses infos.

Et bien sûr, pas besoin de fichiers caches, je laisse l'appel à la base de données ;
Pour ce faire, j'ai tout simplement créé une table d'identifiants, optimisée :)

Merci pour votre aide :)
 
Discussions similaires
Haut