Удаление других сессий пользователя с помощью WP_DESTROY_OTHER_SESSIONS()

WP_DESTROY_OTHER_SESSIONS() │ WP 4.0.0

Функция WP_DESTROY_OTHER_SESSIONS() отвечает за удаление всех сессий пользователя, кроме текущей. Эта функция может быть полезна, если вы хотите ограничить вход пользователя в систему с разных устройств.

Использование функции

Функция задействует метод WP_Session_Tokens::destroy_others(), но не имеет хуков.

Возвращаемое значение

Функция ничего не возвращает (null).

Как использовать

Для удаления других сессий воспользуйтесь следующей командой:

wp_destroy_other_sessions();

Примеры использования

Пример 1: Принудительное ограничение до одной сессии

Этот пример показывает, как проверить все активные сессии пользователя. Если найдена сессия с другим токеном, все остальные сессии будут завершены.

if ( is_user_logged_in() ) {
    $current_token = wp_get_session_token(); // Получаем токен текущей сессии
    $all_sessions = wp_get_all_sessions( get_current_user_id() ); // Получаем все сессии

    foreach ( $all_sessions as $token => $session_data ) {
        // Если найдена другая сессия, завершаем её
        if ( $token !== $current_token ) {
            wp_destroy_other_sessions(); // Удаляем все другие сессии
            break; // Выходим из цикла
        }
    }
}

Возможность вставить свой пример

Вы можете добавить свой собственный пример использования функции, если это необходимо.

История изменений

Функция была добавлена в версии 4.0.0.

Код функции

Вот как выглядит код функции wp_destroy_other_sessions() в версии WP 6.7.2:

function wp_destroy_other_sessions() {
    $token = wp_get_session_token(); // Получаем токен текущей сессии
    if ( $token ) {
        $manager = WP_Session_Tokens::get_instance( get_current_user_id() ); // Инициализируем управление сессиями
        $manager->destroy_others( $token ); // Удаляем все другие сессии
    }
}

Связанные функции

Функция wp_destroy_other_sessions() связана с несколькими другими функциями, которые также работают с пользователями. Вот некоторые из них:

Функции для работы с пользователями

  • clean_user_cache() — обновляет кэш данных пользователя.
  • current_user_can() — проверяет возможности текущего пользователя.
  • get_current_user_id() — возвращает ID текущего пользователя.
  • is_user_logged_in() — проверяет, авторизован ли пользователь.

Функции для авторизации

  • wp_login() — обрабатывает процесс входа пользователя.
  • wp_logout() — завершает сессию пользователя и выводит его из системы.
  • wp_authenticate() — проверяет данные для входа пользователя.

Используя эти функции, вы можете управлять сессиями пользователей и обеспечивать безопасность своего сайта на WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *