Partage de cookie sur plusieurs WordPress

outils wordpress Looic . Com (reloaded)Je possède un site perso articulé autour de plusieurs moteurs WordPress indépendants (plus pour des raisons historiques que des raisons de performance. Peut-être aussi un peu pour des raisons de sécurité celà dit : je n’ai jamais aimé mettre tous mes oeufs dans le même panier).

L’un de mes sites (de petites annonces) dispose d’une base d’utilisateurs grandissante, un autre de mes sites WordPress permet aux visiteurs de consulter  des fiches produits et les enregistrer dans leur profil.

Les deux sites étant liés dans leur domaine et leur thématique, il m’a paru logique de faire en sorte que des utilisateurs inscrits au premier site de petites annonces, puissent enregistrer des fiches produit dans le second site WordPress, et vice-versa.

Seul hic : les deux moteurs WordPress étant indépendants, comment faire en sorte que les utilisateurs soient automatiquement reconnus sur les deux sites, dès lors qu’ils s’authentifient sur l’un ou l’autre ?

La solution n’est pas très compliquée.

Première étape : partager la base utilisateurs.

La première étape consiste à définir lequel de vos blogs WordPress « maître » doit héberger la base des utilisateurs de vos WordPress « esclaves ».

Une fois ceci défini, ouvrez le fichier wp-config.php de chacun de WordPress « esclaves » pour y inclure le bout de code suivant :

1
2
define('CUSTOM_USER_TABLE','wpmyblogmaitre_users');
define('CUSTOM_USER_META_TABLE','wpmyblogmaitre_usermeta');

Ainsi, votre WordPress n’ira plus rechercher les utilisateurs dans les tables wpmyblogesclave_users et wpmyblogesclave_usersmeta, mais dans les tables wpmyblogmaitre_users et wpmyblogmaitre_usersmeta. Attention, on suppose ici que les tables sont dans la même base de données, seul le préfix d’installation de votre WordPress change.

Attention à ne pas inclure le bout de code après le require_once qui se situe à la fin du fichier wp-config.php, j’ai l’impression que cela ne fonctionne pas. Incluez le bout de code en milieu de fichier ça sera très bien.

Voilà, vous pouvez essayer de vous connecter sur l’un des blogs esclaves : ce sont les utilisateurs présents dans la base de votre blog maître qui fonctionnent.

Seconde étape : le cookie-sharing !

Vous avez du le remarquer, vos WordPress exclaves interrogent la base utuilisateurs du WordPress maître, mais en passant de site en site, vous devez vous réauthentifier.

Nous allons, pour éviter celà, faire du partage de cookie.

Le principe est très simple. Tout d’abord, toujours dans les fichiers wp-config.php, vous devez recopier la section suivante de votre WordPress maître, sur vos WordPress esclaves :

1
2
3
4
5
6
define('COOKIE_DOMAIN', '.mondomaine.com');
define('ADMIN_COOKIE_PATH', '/');
define('SITECOOKIEPATH', '/');
define('COOKIEPATH', '/');
define('SECRET_SALT', '**************************');
define('COOKIEHASH', md5('Tirelipinpon sur le Chiwawa !'));

Ensuite, recopiez la section suivante du fichier wp-config.php votre WordPress maître… sur vos WordPress esclaves :

1
2
3
4
5
6
7
8
define('AUTH_KEY', '******************');
define('SECURE_AUTH_KEY', '******************');
define('LOGGED_IN_KEY', '******************');
define('NONCE_KEY', '******************');
define('AUTH_SALT', ' ******************');
define('SECURE_AUTH_SALT', '******************');
define('LOGGED_IN_SALT', '******************');
define('NONCE_SALT', '******************');

Si ce n’est déjà fait, il est vivement recommandé d’utiliser des valeurs différentes de l’installation par défaut de WordPress, en vous rendant sur cette adresse : https://api.wordpress.org/secret-key/1.1/salt/ 

Voilà. Vérifiez, connectez-vous sur l’un de vos WordPress et normalement vous serez automatiquement authentifié, sans besoin de ressaisir votre mot de passe, sur vos autres blogs WordPress.

 

Laisser un commentaire