Настройка авторизации через социальные сети 1С-Битрикс
Авторизация через социальные сети сокращает трение при регистрации. Пользователю не нужно придумывать пароль и подтверждать email — он кликает на кнопку ВКонтакте, Google или Facebook и попадает в личный кабинет. В 1С-Битрикс эта возможность реализована через модуль socialservices.
Как это работает в Битрикс
Модуль socialservices реализует OAuth 2.0 для каждого провайдера. При нажатии на кнопку пользователь перенаправляется к провайдеру, авторизуется там, провайдер возвращает токен на callback-URL Битрикс. Модуль получает данные профиля и либо авторизует существующего пользователя (по совпадению email или по привязанному аккаунту в таблице b_socserv_user), либо создаёт нового.
Привязка хранится в таблице b_socserv_user:
| Поле | Назначение |
|---|---|
| USER_ID | ID пользователя в b_user |
| EXTERNAL_AUTH_ID | Идентификатор провайдера (vkontakte, google, facebook) |
| SOCSERV_USER_ID | Уникальный ID пользователя у провайдера |
| PERSONAL_WWW | Профиль у провайдера |
Настройка провайдеров
Каждый провайдер настраивается в разделе Настройки → Социальные сети → Авторизация. Для каждого требуется создать приложение на стороне провайдера и получить App ID (Client ID) и App Secret.
ВКонтакте: создать приложение на vk.com/apps?act=manage, тип — «Веб-сайт». В настройках указать адрес сайта и callback URL: https://ваш-сайт.ru/bitrix/tools/oauth/vkontakte.php.
Google: создать OAuth-клиент в console.cloud.google.com, тип — «Веб-приложение». Redirect URI: https://ваш-сайт.ru/bitrix/tools/oauth/google.php. Включить Google+ API (или People API).
Facebook/Meta: создать приложение на developers.facebook.com, добавить продукт «Facebook Login». В Valid OAuth Redirect URIs указать https://ваш-сайт.ru/bitrix/tools/oauth/facebook.php.
Компонент авторизации
Кнопки выводятся компонентом bitrix:socserv.auth.form или интегрируются в стандартную форму авторизации bitrix:system.auth.form:
$APPLICATION->IncludeComponent('bitrix:socserv.auth.form', '', [
'AUTH_SERVICES' => ['vkontakte', 'google'],
'MODE' => 'AUTH', // или 'REGISTRATION'
'REDIRECT_URL' => '/personal/',
]);
Стандартный компонент system.auth.form подтягивает кнопки социальных сетей автоматически, если включён модуль socialservices и заполнены настройки провайдеров.
Типичные проблемы
-
Callback URL не совпадает — провайдер возвращает ошибку
redirect_uri_mismatch. Проверьте точное совпадение URL, включая протокол (httpvshttps) и слеш в конце. - HTTPS обязателен — Facebook и Google не работают по HTTP даже на этапе разработки. Используйте локальный SSL.
-
Пользователь уже зарегистрирован с тем же email — по умолчанию Битрикс создаёт нового пользователя. Для привязки к существующему аккаунту нужно настроить параметр
MATCH_BY_EMAIL = Yв конфигурации провайдера черезCSocServAuthManager.
Сроки выполнения
Базовая настройка одного провайдера (ВКонтакте или Google) — 2–3 часа. Три провайдера с кастомным оформлением кнопок и адаптацией под шаблон — 4–6 часов.







