Как сделать один вход в WordPress для нескольких сайтов (единый вход)

Если вы управляете несколькими сайтами на WordPress и хотите упростить процесс авторизации, то реализация единого входа (Single Sign-On, SSO) — отличное решение. Это позволит пользователям вводить логин и пароль один раз и получать доступ сразу ко всем сайтам без повторного ввода учетных данных. В этой статье разберем, как реализовать единый вход в экосистеме WordPress, рассмотрим популярные подходы, плагины и примеры кода.

Почему важен единый вход для WordPress мультисайтов и сети сайтов

Единый вход значительно упрощает работу с несколькими сайтами, объединенными общей аудиторией или командой. Он позволяет:

  • Повысить удобство пользователей — не нужно каждый раз вводить логин и пароль.
  • Обеспечить централизованное управление доступом и ролями.
  • Снизить риск ошибок при вводе пароля и тем самым повысить безопасность.
  • Упростить интеграцию с корпоративными системами единой аутентификации.

Для WordPress есть два основных сценария: мультисайт (Multisite) и отдельные независимые сайты. В мультисайте единый вход реализован из коробки, но для разных сайтов — задача сложнее.

Реализация единого входа в WordPress Multisite

WordPress Multisite — это встроенная в WordPress сеть сайтов, где все сайты используют общую базу пользователей. В этом случае:

  • Одна учетная запись действует на всех сайтах.
  • Пользователь входит на любом сайте, и сессия действует на всей сети.

Чтобы включить Multisite, достаточно добавить в wp-config.php строку:

define('WP_ALLOW_MULTISITE', true);

После активации сети настройте сеть из админки. В мультисайте единый вход и сессии работают автоматически благодаря cookie с областью домена. Главное, чтобы сайты были на одном домене или поддоменах.

Настройка cookie для мультисайта

Для корректной работы сессий можно в wp-config.php задать домен для cookie, например:

define('COOKIE_DOMAIN', '.example.com');

Это позволит cookie быть доступным на всех поддоменах.

Единый вход для разных доменов и независимых WordPress сайтов

Если сайты расположены на разных доменах, задача сложнее — cookie не работают между доменами. Решения делятся на несколько вариантов:

  • Использовать SSO через внешние сервисы (OAuth, SAML).
  • Реализовать централизованную аутентификацию с помощью базы данных или REST API.
  • Использовать плагины, которые синхронизируют сессии.

Плагин MiniOrange SSO или WordPress SAML Single Sign On

Эти плагины позволяют настроить SSO через протокол SAML или OAuth, подключая сайты к единой системе аутентификации. Это удобный способ для корпоративных клиентов и организаций.

Подробнее и купить поддержку можно на wpshop.ru.

Пример реализации простого SSO через REST API и куки

Рассмотрим упрощенный пример, когда есть главный сайт с базой пользователей, и несколько второстепенных. При входе на главный сайт создается токен, который передается и проверяется на других сайтах.

Шаг 1. Генерация токена на главном сайте

function wplogin_generate_sso_token($user_id) {
    $secret = 'секретная_строка';
    $token = base64_encode(hash_hmac('sha256', $user_id . time(), $secret, true));
    return $token;
}

Шаг 2. Передача токена во второстепенный сайт

При переходе на второстепенный сайт, токен передается через GET-параметр или POST, например:

https://site2.com?sso_token=TOKEN&user_id=USER_ID

Шаг 3. Проверка токена на второстепенном сайте

function wplogin_validate_sso_token($user_id, $token) {
    $secret = 'секретная_строка';
    $expected_token = base64_encode(hash_hmac('sha256', $user_id . 'пример_времени', $secret, true));
    return hash_equals($expected_token, $token);
}

Если проверка успешна, используя wp_set_auth_cookie($user_id) можно авторизовать пользователя.

Использование плагина Clearfy Pro для управления сессиями и безопасностью входа

Плагин Clearfy Pro предоставляет удобные инструменты для контроля сессий, ограничения одновременных входов, блокировки подозрительных сессий и интеграции с другими системами. Его можно использовать для усиления безопасности при реализации единого входа.

Как синхронизировать роли и права пользователей между сайтами

При едином входе важно, чтобы роли пользователей были согласованы. В мультисайте роли можно назначать отдельно для каждого сайта, а при использовании отдельных сайтов — нужно синхронизировать пользователей и их права.

Для этого можно использовать WP REST API для передачи данных и хуки для автоматической синхронизации.

Пример синхронизации ролей через REST API

add_action('user_register', 'wplogin_sync_user_roles');
function wplogin_sync_user_roles($user_id) {
    $user = get_userdata($user_id);
    $roles = $user->roles;
    $api_url = 'https://site2.com/wp-json/custom/v1/sync_user';
    wp_remote_post($api_url, [
        'body' => [
            'user_id' => $user_id,
            'roles' => json_encode($roles),
        ]
    ]);
}

На принимающем сайте создайте эндпоинт, который обновит роли пользователя.

Заключение

Реализация единого входа в WordPress зависит от архитектуры ваших сайтов и требований к безопасности. Для мультисайта WordPress все просто и работает из коробки. Для нескольких доменов нужно использовать SSO через протоколы SAML/OAuth или писать собственные решения с API и токенами.

Используйте плагины, например, MiniOrange SSO, Clearfy Pro для усиления безопасности и удобства. При желании можно написать и кастомные решения с помощью REST API и хуков.

Такой подход значительно улучшит опыт пользователей и упростит управление несколькими сайтами.

Как создать двойную форму входа в WordPress для повышения безопасности
23.12.2025
Как запретить автоматический вход в WordPress через cookie
07.02.2026
Как использовать хук authenticate для дополнительной проверки при входе в WordPress
04.08.2026
Как отключить вход для неактивных пользователей в WordPress
06.03.2026
Как автоматизировать сброс пароля после взлома в WordPress
07.07.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.