Wyloguj wszystkich użytkowników po pushu witryny Staging na produkcję

Gdy zarządzasz witryną WordPress ze środowiskiem Staging, push zmian na produkcję jest procesem krytycznym. Zapewnia spójność i poprawne działanie witryny produkcyjnej. Podczas tego procesu aktywne sesje użytkowników z witryny Staging mogą jednak utrzymywać się na produkcji, co może powodować zagrożenia bezpieczeństwa lub nieoczekiwane zachowania — np. użytkownicy widzą stare i nieaktualne treści.

Aby temu zaradzić i mieć pewność, że wszyscy użytkownicy zobaczą zaktualizowaną witrynę, możesz automatycznie wylogować wszystkich użytkowników po pushu Staging na produkcję, używając niestandardowego filtra WordPress. Zapewnia to unieważnienie wszelkich danych sesji z witryny Staging i wymusza ponowne logowanie. Oto jak wdrożyć to rozwiązanie z WP STAGING.


Problem: trwałość sesji

Gdy pushujesz witrynę Staging na produkcję, dane sesji użytkowników (w tym tokeny logowania) również są przenoszone. W rezultacie:

  • Użytkownicy z witryny Staging mogą pozostać zalogowani na produkcji.
  • Wrażliwe dane mogą przypadkowo pozostać dostępne.
  • Mogą pojawić się zagrożenia bezpieczeństwa z powodu nadużyć tokenów.

Rozwiązanie: użyj niestandardowego filtra do unieważnienia sesji użytkowników

Wykorzystując akcję wpstg_pushing_complete dostarczaną przez WP STAGING, możesz uruchomić funkcję unieważniającą wszystkie aktywne sesje użytkowników natychmiast po pushu. Osiąga się to przez usunięcie tokenów sesji przechowywanych w bazie danych WordPress.


Implementacja kodu

Oto snippet kodu, który wylogowuje wszystkich użytkowników po pushu witryny Staging na produkcję:

PHP
/**
 * Log out all users after pushing a staging site to production.
 */
function myPrefixinvalidateAllUsers()
{
    // Access the global $wpdb object to interact with the database
    global $wpdb;

    // Cleanup session tokens from the usermeta table
    $wpdb->query("DELETE FROM {$wpdb->prefix}usermeta WHERE meta_key = 'session_tokens'");
}

// Hook the function to WP Staging's 'wpstg_pushing_complete' action
add_action('wpstg_pushing_complete', 'myPrefixinvalidateAllUsers');

Jak to działa

  1. Czyszczenie bazy danych:
    Funkcja myPrefixinvalidateAllUsers() oddziałuje na tabelę usermeta WordPressa, usuwając wszystkie wpisy powiązane z meta-kluczem session_tokens. To skutecznie unieważnia wszystkie aktywne sesje użytkowników.
  2. Uruchamianie akcji:
    Hook wpstg_pushing_complete jest wywoływany po zakończeniu przez WP STAGING procesu pushu witryny Staging na produkcję. Funkcja wykonuje się wtedy automatycznie.
  3. Rezultat:
    Po usunięciu tokenów sesji wszyscy użytkownicy są wylogowani i muszą ponownie się zalogować, aby uzyskać dostęp do witryny produkcyjnej.

Kroki wdrożenia

  1. Utwórz plugin Must-Use (MU-plugin):
    • Przejdź do katalogu wp-content/mu-plugins/ witryny produkcyjnej. Jeśli katalog nie istnieje, utwórz go.
    • Utwórz nowy plik PHP, np. invalidate-user-sessions.php.
    • Skopiuj i wklej powyższy snippet kodu do tego pliku.
  2. Wdrożenie:
    • Zapisz plik i upewnij się, że został wgrany do katalogu mu-plugins.
    • WP STAGING będzie teraz automatycznie wylogowywał wszystkich użytkowników po każdym pushu na produkcję.

Korzyści

  • Lepsze bezpieczeństwo: użytkownicy ze środowiska Staging nie mogą przypadkowo uzyskać dostępu do witryny produkcyjnej.
  • Większa kontrola: gwarantuje, że tylko zweryfikowani użytkownicy mogą się ponownie zalogować po wdrożeniu.
  • Usprawnione zarządzanie: automatyzuje zarządzanie sesjami podczas wdrożenia.

Dodatkowe uwagi

  • Rozwiązanie dotyczy wyłącznie funkcji push-to-production WP STAGING. Nie wpływa na inne funkcjonalności WordPressa ani sesje utworzone później.
  • Przy konfiguracjach multisite upewnij się, że skrypt uruchamia się na wszystkich podwitrynach, jeśli to konieczne.

Dzięki temu podejściu możesz utrzymać bezpieczne i niezawodne środowisko produkcyjne, zapewniając płynne przejście z Staging na produkcję.

Updated on 23 maja, 2026

Rene Hermenau

Autor: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.