Налаштування авторизації через соціальні мережі у 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://ваш-сайт.com/bitrix/tools/oauth/vkontakte.php.
Google: створити OAuth-клієнт у console.cloud.google.com, тип — «Веб-додаток». Redirect URI: https://ваш-сайт.com/bitrix/tools/oauth/google.php. Включити Google+ API (або People API).
Facebook/Meta: створити додаток на developers.facebook.com, додати продукт «Facebook Login». У Valid OAuth Redirect URIs вказати https://ваш-сайт.com/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 годин.







