Как добавить авторизацию через Google в WordPress

Зачем нужна авторизация через Google в WordPress

Авторизация через Google упрощает вход пользователей на сайт, избавляя их от необходимости создавать отдельные учетные записи и запоминать пароли. Это повышает удобство и безопасность, снижая количество забытых паролей и улучшая пользовательский опыт. Особенно полезно для сайтов с регистрацией и личными кабинетами.

Кроме того, использование OAuth 2.0 от Google позволяет минимизировать риски, связанные с хранением паролей, так как аутентификация происходит на стороне Google.

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

Выбор плагина для авторизации через Google

Плагины для социальной авторизации

Существует несколько популярных плагинов, которые позволяют добавить авторизацию через Google быстро и без программирования. Вот лучшие из них:

  • Nextend Social Login — один из самых популярных и простых в настройке плагинов. Позволяет добавить вход через Google, Facebook, Twitter и другие сервисы.
  • Super Socializer — многофункциональный плагин с гибкими настройками социальных логинов и комментариев.
  • WP Social Login — простой и легкий плагин, поддерживающий множество соцсетей.

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

Как добавить авторизацию через Google вручную: настройка OAuth 2.0

Регистрация приложения в Google Console

Для начала необходимо зарегистрировать приложение в Google Cloud Console:

  1. Создайте новый проект или выберите существующий.
  2. Перейдите в раздел OAuth consent screen и настройте экран согласия, указав название приложения и контактные данные.
  3. В разделе Credentials выберите Create CredentialsOAuth client ID.
  4. Выберите тип приложения Web application и укажите в поле Authorized redirect URIs URL вашего сайта с добавлением пути для обработки ответа, например: https://ваш-сайт.ru/wp-login.php?action=google_oauth_callback.
  5. Сохраните Client ID и Client Secret — они понадобятся для интеграции.

Добавление кода для обработки авторизации

Создадим в файле темы или в собственном плагине функцию-обработчик для входа через Google.

function wparticles_google_oauth_login() {
    if (!isset($_GET['code'])) {
        return;
    }
    $code = sanitize_text_field($_GET['code']);
    $client_id = 'ВАШ_CLIENT_ID';
    $client_secret = 'ВАШ_CLIENT_SECRET';
    $redirect_uri = 'https://ваш-сайт.ru/wp-login.php?action=google_oauth_callback';

    // Обмен кода на access token
    $response = wp_remote_post('https://oauth2.googleapis.com/token', [
        'body' => [
            'code' => $code,
            'client_id' => $client_id,
            'client_secret' => $client_secret,
            'redirect_uri' => $redirect_uri,
            'grant_type' => 'authorization_code',
        ],
    ]);

    if (is_wp_error($response)) {
        wp_die('Ошибка авторизации Google.');
    }

    $body = json_decode(wp_remote_retrieve_body($response), true);
    if (empty($body['access_token'])) {
        wp_die('Не получен access token.');
    }

    // Получение данных пользователя
    $user_info_response = wp_remote_get('https://www.googleapis.com/oauth2/v1/userinfo?access_token=' . $body['access_token']);
    if (is_wp_error($user_info_response)) {
        wp_die('Ошибка получения данных пользователя.');
    }

    $user_info = json_decode(wp_remote_retrieve_body($user_info_response), true);
    if (empty($user_info['email'])) {
        wp_die('Email пользователя не получен.');
    }

    // Поиск или создание пользователя
    $user = get_user_by('email', $user_info['email']);
    if (!$user) {
        $random_password = wp_generate_password(12, false);
        $user_id = wp_create_user($user_info['email'], $random_password, $user_info['email']);
        if (is_wp_error($user_id)) {
            wp_die('Ошибка создания пользователя.');
        }
        wp_update_user([
            'ID' => $user_id,
            'display_name' => $user_info['name'],
            'nickname' => $user_info['name'],
        ]);
        $user = get_user_by('id', $user_id);
    }

    // Вход пользователя
    wp_set_current_user($user->ID);
    wp_set_auth_cookie($user->ID);
    wp_redirect(home_url());
    exit;
}
add_action('login_form_google_oauth_callback', 'wparticles_google_oauth_login');

Добавление кнопки входа через Google

Чтобы пользователи могли начать авторизацию, добавим кнопку на страницу входа. Для этого в файл functions.php темы добавьте такой код:

function wparticles_add_google_login_button() {
    $client_id = 'ВАШ_CLIENT_ID';
    $redirect_uri = urlencode('https://ваш-сайт.ru/wp-login.php?action=google_oauth_callback');
    $scope = urlencode('email profile');
    $auth_url = "https://accounts.google.com/o/oauth2/v2/auth?response_type=code&client_id={$client_id}&redirect_uri={$redirect_uri}&scope={$scope}&access_type=online";
    echo '<p><a href="' . esc_url($auth_url) . '" class="button button-primary" style="background:#4285F4;border-color:#4285F4;">Войти через Google</a></p>';
}
add_action('login_form', 'wparticles_add_google_login_button');

Тестирование и отладка авторизации через Google

После настройки важно проверить, что авторизация работает корректно. Войдите на страницу входа WordPress и нажмите кнопку «Войти через Google». После успешного входа вы должны быть перенаправлены на главную страницу сайта и авторизованы.

Если возникают ошибки, проверьте правильность Client ID, Client Secret, URL редиректа и наличие необходимых разрешений в Google Console.

Для более удобной отладки можно включить логирование запросов с помощью плагинов, например, Query Monitor.

Использование плагина WPGPT для расширения авторизации

Плагин WPGPT позволяет интегрировать современные AI-инструменты и расширить функционал сайта, включая возможности авторизации и персонализации. С его помощью можно дополнительно анализировать профиль пользователя и подстраивать контент.

WPGPT легко комбинируется с социальной авторизацией и помогает создавать динамические и адаптивные интерфейсы.

Советы по безопасности при использовании авторизации через Google

При реализации авторизации через внешние сервисы важно соблюдать меры безопасности:

  • Не храните Client Secret в доступных файлах без защиты.
  • Используйте HTTPS для всех запросов и редиректов.
  • Проверяйте корректность данных пользователя перед созданием аккаунта.
  • Ограничивайте доступ и права пользователей, если это необходимо.

Также регулярно обновляйте плагины и WordPress для защиты от известных уязвимостей.

Заключение

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

Если хотите автоматизировать и расширить возможности сайта, рассмотрите использование продуктов из WPShop.

Как использовать хуки WooCommerce для добавления пользовательского функционала
26.12.2025
Как удалить или изменить email пользователя после регистрации в WooCommerce без потери данных
28.06.2026
Как безопасно удалить или отключить плагин в WordPress без потери данных
16.11.2025
Как изменить способы оплаты в WooCommerce для разных ролей пользователей
06.06.2026
Как использовать WPCommunity для создания приватных клубов на WordPress
31.03.2026

Ниже мы подобрали самые актуальные материалы по Вордпресс