it-swarm.com.de

So melden Sie sich einmal bei einem gesamten Computer an WP Multisite-Netzwerk

Kennt jemand ein gutes Plugin, das es ermöglicht, sich einmal als WP-MS-Netzwerk einzuloggen Super Admin und in der Lage zu sein, Standorte zu wechseln, ohne sich erneut in jedem Netzwerk und/oder an jedem Standort einzeln anmelden zu müssen?

Vielen Dank

1
tammy

@ Tammy tut es nicht. Wenn Sie über ein Dutzend verschiedener Netzwerk-Setups verfügen, gibt es keine sichere Möglichkeit, sich bei allen auf einmal anzumelden. Wenn es sich um ein Dutzend Sites handelt, die auf 1 WP installiert sind, sollten Sie bei der Anmeldung über ein einziges Netzwerk angemeldet sein.

- Alex Older 5. August um 10:35

1
tammy

Dies hat mit der Cookie-Domain zu tun. Es wird für jede Domäne festgelegt, wodurch netzwerkweite Anmeldungen verhindert werden. Sie können versuchen, die COOKIE_DOMAIN-Konstante in Ihrem wp-config.php festzulegen.

Setzen Sie es beispielsweise auf leer, um zu verhindern, dass WordPress die Cookie-Domain für jede Site ändert:

define( 'COOKIE_DOMAIN', '' );

Möglicherweise müssen Sie auch einige andere Konstanten festlegen, damit es funktioniert.

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

Fragen Sie mich nicht nach Nachteilen, da ich mir da nicht ganz sicher bin.

Oder Sie können eine bestimmte Cookie-Domain für alle Sites festlegen:

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

Es ist wahrscheinlich eine gute Idee, auch einen einzigartigen Cookie-Hash zu setzen:

define( 'COOKIEHASH', 'unique_cookie_hash_string' );

Falls Sie andere WordPress-Installationen haben, die dieselbe Domain für Cookies verwenden.

Update:

Von der GitHub-Seite von WP Multi Network habe ich Folgendes erhalten:

Einmalige Anmeldung

Verstecken Sie etwas Ähnliches in Ihrem wp-config.php, um Cookies für alle Websites und Netzwerke freizugeben.

// 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 );

So wie es aussieht, handelt es sich um allgemeines WordPress-Zeug, das nicht Plug-in-spezifisch ist. Daher ist es möglicherweise einen Versuch wert. Könnte sein, wir haben noch nicht genug getan.

1
Nicolai

Tatsächlich.

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

Es gibt auch eine Pro-Version

0
samjco

Ab Wordpress 4.2.4 wird bei einer Multi-Site-Installation mit Bone Stock mit MU Domain Mapping 0.5.5 Development Plugin und Multisite User Managment Plugin 1.1 ein Benutzer angemeldet, der sich über die primäre Domäne anmeldet Alle Sites, denen der Benutzer zugewiesen ist (alle Sites als Superadministrator). Der Benutzer hat jedoch eine untergeordnete Site besucht, um das Cookie und die Authentifizierung einzurichten. Dies erfolgt automatisch. Glücklicherweise können Sie eine Problemumgehung einschließen, um einen Benutzer von allen Sites abzumelden, wenn eine untergeordnete Site besucht wurde, während er in der primären Domain authentifiziert wurde. Derzeit habe ich festgestellt, dass Sie nicht standardmäßig von allen Websites abgemeldet werden. Folgendes können Sie zu Ihrer functions.php-Datei in Ihrem Design hinzufügen, wodurch die Sitzungen des Benutzers im gesamten Netzwerk beim Abmelden zerstört werden:

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');

Es ist auch eine gute Idee, Ihr netzwerkweites Design oder die auf den untergeordneten Websites verwendeten Designs zu aktualisieren, um sich mit dem wp-admin/der primären Domain anzumelden und abzumelden. Wenn der Benutzer sich jedoch von jeder untergeordneten Site abmelden muss, "wenn besucht", während er in der primären Domäne angemeldet ist, ist der Standard-Abmelde-Hook ausreichend.

Zu Ihrer Information: Wenn Sie sich mit dem Super Admin-Konto bei einer untergeordneten Site anmelden, werden Sie nicht bei jeder Site angemeldet. Ich denke, dies ist beabsichtigt und ganz einfach eine einfache Lösung, indem Sie den Login- und Logout-Hook des Themas so ändern, dass immer die primäre Domain verwendet wird. Wenn Sie es vorziehen, beim Anmelden und Abmelden zur untergeordneten Domäne zurückzukehren, können Sie auch hierfür einen einfachen Hook ausführen.

0
Zach Goldsmith