web-dev-qa-db-fra.com

Comment se connecter une fois à l'ensemble WP Réseau multisite

Est-ce que quelqu'un connaît un bon plug-in qui permet de se connecter une fois en tant que réseau WP-MS Super Admin et de pouvoir changer de site sans avoir à se reconnecter à chaque réseau et/ou à chaque site individuellement?

Merci

1
tammy

@ tammy ça ne marche pas. Si vous avez une douzaine de configurations réseau différentes, il n’existe aucun moyen sûr de vous connecter à toutes en même temps. S'il y a une douzaine de sites sur 1 WP installer, vous devez être connecté à un seul réseau lorsque vous vous connectez.

- Alex Older 5 août à 10:35

1
tammy

Cela concerne le domaine des cookies. Il est défini pour chaque domaine, ce qui empêche les connexions à l'échelle du réseau. Vous pouvez essayer de définir COOKIE_DOMAIN constante dans votre wp-config.php.

Par exemple, le paramétrer pour qu'il soit vide, ce qui empêche WordPress de changer le domaine des cookies pour chaque site:

define( 'COOKIE_DOMAIN', '' );

Peut-être avez-vous également besoin de définir d'autres constantes pour que cela fonctionne.

define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '' );
define( 'SITECOOKIEPATH', '' );

Ne me posez pas de questions sur les inconvénients, car je n'en suis pas tout à fait sûr.

Ou vous pouvez définir un domaine de cookie spécifique pour tous les sites:

define( 'COOKIE_DOMAIN', 'example.com' );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH', '/' );
define( 'SITECOOKIEPATH', '/' );

Il est probablement judicieux de définir un hachage de cookie unique également:

define( 'COOKIEHASH', 'unique_cookie_hash_string' );

Si vous avez d'autres installations WordPress utilisant le même domaine pour les cookies.

Mise à jour:

À partir de la page GitHub de WP Multi Network j'ai compris ceci:

Authentification unique

Rangez quelque chose de similaire dans votre wp-config.php pour partager des cookies sur tous les sites et réseaux.

// Cookies
define( 'COOKIEHASH',        md5( 'yourdomain.com' ) );
define( 'COOKIE_DOMAIN',     'yourdomain.com'        );
define( 'ADMIN_COOKIE_PATH', '/' );
define( 'COOKIEPATH',        '/' );
define( 'SITECOOKIEPATH',    '/' );
define( 'TEST_COOKIE',        'thing_test_cookie' );
define( 'AUTH_COOKIE',        'thing_'          . COOKIEHASH );
define( 'USER_COOKIE',        'thing_user_'     . COOKIEHASH );
define( 'PASS_COOKIE',        'thing_pass_'     . COOKIEHASH );
define( 'SECURE_AUTH_COOKIE', 'thing_sec_'      . COOKIEHASH );
define( 'LOGGED_IN_COOKIE',   'thing_logged_in' . COOKIEHASH );

De prime abord, il s’agit d’un contenu générique pour WordPress, et non d’un plug-in, il vaudrait donc la peine de l’essayer. Peut-être, nous n'avons pas fait assez jusqu'à présent.

1
Nicolai

Réellement.

https://wordpress.org/plugins/share-logins/

Il y a aussi une version Pro

0
samjco

À partir de Wordpress 4.2.4, une installation multisite stock standard avec MU Domain Mapping 0.5.5 Development Plugin et Multisite User Managment Plugin 1.1 , la connexion via le domaine principal connectera un utilisateur à tous les sites auxquels l'utilisateur est affecté (tous les sites en tant qu'utilisateur super administrateur). Toutefois, l'utilisateur doit se rendre sur un site enfant pour établir le cookie et l'authentification, ce qui sera fait automatiquement. Heureusement, vous pouvez inclure une solution de contournement pour déconnecter un utilisateur de tous les sites si un site enfant a été visité alors qu'il était autorisé sur le domaine principal. Actuellement, j'ai constaté qu'il ne vous déconnecte pas de tous les sites par défaut. Voici ce que vous pouvez ajouter à votre fichier functions.php dans votre thème, ce qui détruira les sessions des utilisateurs sur l'ensemble du réseau lors de la déconnexion ci-dessous:

function clear_session_on_logout() {

$current_user = wp_get_current_user();

// get all sessions for user with ID $user_id
$sessions = WP_Session_Tokens::get_instance($current_user->ID);

// we have got the sessions, destroy them all!
$sessions->destroy_all();
}
add_action('clear_auth_cookie', 'clear_session_on_logout');

Il est également judicieux de mettre à jour le thème de votre réseau ou les thèmes utilisés dans les sites enfants pour vous connecter et vous déconnecter avec wp-admin/du domaine principal. Toutefois, si vous demandez à l'utilisateur de se déconnecter de chaque site enfant "s'il est visité" tout en étant connecté au domaine principal, le point d'ancrage de déconnexion par défaut suffit.

FYI: Si vous vous connectez à un site enfant avec un compte Super Admin, il ne vous connectera pas à tous les sites. Je pense que cela est voulu par la conception, et tout simplement une solution facile en modifiant le crochet de connexion et de déconnexion du thème pour qu'il utilise toujours le domaine principal. Si vous préférez rediriger vers le domaine enfant lors de la connexion et de la déconnexion, un raccordement simple peut également être effectué à cet effet.

0
Zach Goldsmith