Соціальний вхід (social login)
Соціальний вхід дозволяє клієнтам реєструватися та входити через обліковий запис Google чи Facebook. Усуває потребу створювати та запам’ятовувати пароль, що пришвидшує процес покупки та збільшує кількість реєстрацій.
Увімкнення модуля
Section titled “Увімкнення модуля”Перейдіть до WooCommerce > Polski > Модулі магазину та увімкніть Соціальний вхід. Потім налаштуйте ключі API для обраних постачальників (Google, Facebook або обидва).
Функції
Section titled “Функції”- Вхід і реєстрація через Google OAuth2
- Вхід і реєстрація через Facebook OAuth2
- Кнопки на сторінці “Мій обліковий запис”, замовлення та входу WordPress
- Автоматична реєстрація з роллю “Клієнт” (customer)
- Об’єднання облікових записів за адресою електронної пошти або ідентифікатором постачальника
- Безпечна обробка токенів OAuth2
- Відсутність зберігання паролів користувачів, які входять через соцмережі
Налаштування
Section titled “Налаштування”Конфігурація в WooCommerce > Polski > Модулі магазину > Соціальний вхід.
| Налаштування | За замовчуванням | Опис |
|---|---|---|
google_enabled | false | Увімкнути вхід через Google |
google_client_id | - | Client ID з Google Cloud Console |
google_client_secret | - | Client Secret з Google Cloud Console |
facebook_enabled | false | Увімкнути вхід через Facebook |
facebook_app_id | - | App ID з Meta for Developers |
facebook_app_secret | - | App Secret з Meta for Developers |
auto_register | true | Автоматично створювати обліковий запис при першому вході |
Опція в базі даних: polski_social_login.
Налаштування постачальників
Section titled “Налаштування постачальників”- Перейдіть до Google Cloud Console
- Створіть новий проект або виберіть наявний
- Перейдіть до APIs & Services > Credentials
- Натисніть Create Credentials > OAuth 2.0 Client ID
- Тип застосунку: Web application
- Додайте авторизований URI переадресації:
https://twojsklep.pl/?polski_social_login=google_callback - Скопіюйте Client ID та Client Secret до налаштувань модуля
- Переконайтеся, що Google+ API або People API увімкнено в проекті
- Перейдіть до Meta for Developers
- Створіть новий застосунок типу Consumer
- У налаштуваннях застосунку перейдіть до Facebook Login > Settings
- Додайте дійсний URI переадресації OAuth:
https://twojsklep.pl/?polski_social_login=facebook_callback - Скопіюйте App ID та App Secret до налаштувань модуля
- Переведіть застосунок у режим Live (не sandbox)
Об’єднання облікових записів
Section titled “Об’єднання облікових записів”Модуль об’єднує облікові записи користувачів так:
- За адресою електронної пошти - якщо обліковий запис WordPress із такою самою адресою електронної пошти вже існує, модуль об’єднує їх автоматично (користувач входить до наявного облікового запису)
- За ідентифікатором постачальника - якщо користувач входив раніше через того самого постачальника, модуль розпізнає його за збереженим ідентифікатором
Дані постачальника зберігаються в usermeta:
_polski_social_google_id- ідентифікатор Google_polski_social_facebook_id- ідентифікатор Facebook
Технічні деталі
Section titled “Технічні деталі”Потік OAuth2
Section titled “Потік OAuth2”- Клієнт натискає кнопку “Увійти через Google/Facebook”
- Переадресація на сторінку авторизації постачальника
- Клієнт надає згоду на надання даних
- Постачальник переадресовує назад до магазину з кодом авторизації
- Модуль обмінює код на токен доступу (на боці сервера)
- Модуль отримує профіль користувача (ім’я, e-mail, ідентифікатор)
- Користувач входить або реєструється
Безпека
Section titled “Безпека”- Токени OAuth2 обмінюються на боці сервера (ніколи в браузері)
- Параметр
stateзахищає від атак CSRF - Nonce WordPress валідується при ініціації входу
- Client Secret ніколи не експонується у фронтенд-коді
// Змінити роль новозареєстрованого користувачаadd_filter('polski/social_login/default_role', function (): string { return 'subscriber'; // за замовчуванням: 'customer'});
// Виконати дію після реєстрації через соціальний вхідadd_action('polski/social_login/user_registered', function (int $user_id, string $provider): void { // Надіслати привітальний e-mail wp_mail( get_userdata($user_id)->user_email, 'Вітаємо в магазині!', 'Ваш обліковий запис створено.' );}, 10, 2);
// Фільтрувати дані профілю перед збереженнямadd_filter('polski/social_login/profile_data', function (array $data, string $provider): array { return $data;}, 10, 2);
// Вимкнути автоматичну реєстрацію для обраного постачальникаadd_filter('polski/social_login/auto_register', function (bool $auto, string $provider): bool { if ($provider === 'facebook') { return false; } return $auto;}, 10, 2);CSS-класи
Section titled “CSS-класи”.polski-social-login- контейнер кнопок.polski-social-login__button- кнопка входу.polski-social-login__button--google- кнопка Google.polski-social-login__button--facebook- кнопка Facebook.polski-social-login__separator- роздільник “або”
ID модуля
Section titled “ID модуля”social_login
Усунення несправностей
Section titled “Усунення несправностей”Кнопка переадресовує на сторінку помилки постачальника - перевірте, чи URI переадресації в консолі постачальника точно відповідає адресі магазину (зверніть увагу на https проти http та кінцевий слеш).
Користувач не створюється після входу - переконайтеся, що auto_register увімкнено. Якщо вимкнено, вхід працює лише для наявних облікових записів із відповідною адресою електронної пошти.
Помилка “invalid_client” - перевірте правильність Client ID і Client Secret. Переконайтеся, що немає зайвих пробілів на початку чи в кінці.
Facebook вимагає перевірки застосунку - для базового входу (e-mail, ім’я) перевірка не потрібна. Якщо застосунок у режимі sandbox, входити можуть лише адміністратори та тестувальники, додані в панелі Meta.
Повідомлення про проблеми: github.com/wppoland/polski/issues