Přihlášení přes sociální sítě (social login)
Přihlášení přes sociální sítě umožňuje zákazníkům registraci a přihlášení přes účet Google nebo Facebook. Odstraňuje nutnost vytvářet a pamatovat si heslo, což zrychluje nákupní proces a zvyšuje počet registrací.
Zapnutí modulu
Sekce “Zapnutí modulu”Přejděte do WooCommerce > Polski > Moduly obchodu a zapněte Přihlášení přes sociální sítě. Poté nakonfigurujte API klíče pro vybrané poskytovatele (Google, Facebook nebo oba).
Funkce
Sekce “Funkce”- Přihlášení a registrace přes Google OAuth2
- Přihlášení a registrace přes Facebook OAuth2
- Tlačítka na stránce Můj účet, objednávky a přihlášení WordPress
- Automatická registrace s rolí “Zákazník” (customer)
- Propojení účtů podle e-mailové adresy nebo identifikátoru poskytovatele
- Bezpečná obsluha tokenů OAuth2
- Žádné ukládání hesel uživatelů přihlašujících se přes sociální sítě
Nastavení
Sekce “Nastavení”Konfigurace v WooCommerce > Polski > Moduly obchodu > Přihlášení přes sociální sítě.
| Nastavení | Výchozí | Popis |
|---|---|---|
google_enabled | false | Zapnout přihlášení přes Google |
google_client_id | - | Client ID z Google Cloud Console |
google_client_secret | - | Client Secret z Google Cloud Console |
facebook_enabled | false | Zapnout přihlášení přes Facebook |
facebook_app_id | - | App ID z Meta for Developers |
facebook_app_secret | - | App Secret z Meta for Developers |
auto_register | true | Automaticky vytvořit účet při prvním přihlášení |
Možnost v databázi: polski_social_login.
Konfigurace poskytovatelů
Sekce “Konfigurace poskytovatelů”- Přejděte do Google Cloud Console
- Vytvořte nový projekt nebo vyberte existující
- Přejděte do APIs & Services > Credentials
- Klikněte na Create Credentials > OAuth 2.0 Client ID
- Typ aplikace: Web application
- Přidejte autorizovaný URI přesměrování:
https://vasobchod.cz/?polski_social_login=google_callback - Zkopírujte Client ID a Client Secret do nastavení modulu
- Ujistěte se, že Google+ API nebo People API je v projektu zapnuto
- Přejděte do Meta for Developers
- Vytvořte novou aplikaci typu Consumer
- V nastavení aplikace přejděte do Facebook Login > Settings
- Přidejte platný URI přesměrování OAuth:
https://vasobchod.cz/?polski_social_login=facebook_callback - Zkopírujte App ID a App Secret do nastavení modulu
- Nastavte aplikaci do režimu Live (ne sandbox)
Propojení účtů
Sekce “Propojení účtů”Modul propojuje účty uživatelů následovně:
- Podle e-mailové adresy - pokud již existuje účet WordPress se stejnou e-mailovou adresou, modul je propojí automaticky (uživatel se přihlásí na existující účet)
- Podle identifikátoru poskytovatele - pokud se uživatel již dříve přihlásil přes stejného poskytovatele, modul ho rozpozná podle uloženého identifikátoru
Data poskytovatele se ukládají do usermeta:
_polski_social_google_id- identifikátor Google_polski_social_facebook_id- identifikátor Facebook
Technické podrobnosti
Sekce “Technické podrobnosti”Tok OAuth2
Sekce “Tok OAuth2”- Zákazník klikne na tlačítko “Přihlásit přes Google/Facebook”
- Přesměrování na autorizační stránku poskytovatele
- Zákazník vyjádří souhlas se sdílením dat
- Poskytovatel přesměruje zpět do obchodu s autorizačním kódem
- Modul vymění kód za přístupový token (na straně serveru)
- Modul načte profil uživatele (jméno, e-mail, identifikátor)
- Uživatel je přihlášen nebo zaregistrován
Bezpečnost
Sekce “Bezpečnost”- Tokeny OAuth2 se vyměňují na straně serveru (nikdy v prohlížeči)
- Parametr
statechrání před útoky CSRF - Nonce WordPress je validován při zahájení přihlášení
- Client Secret není nikdy vystaven v kódu front-endu
Hooky
Sekce “Hooky”// Změna role nově zaregistrovaného uživateleadd_filter('polski/social_login/default_role', function (): string { return 'subscriber'; // výchozí: 'customer'});
// Provedení akce po registraci přes social loginadd_action('polski/social_login/user_registered', function (int $user_id, string $provider): void { // Odeslání uvítacího e-mailu wp_mail( get_userdata($user_id)->user_email, 'Vítejte v obchodě!', 'Váš účet byl vytvořen.' );}, 10, 2);
// Filtr dat profilu před uloženímadd_filter('polski/social_login/profile_data', function (array $data, string $provider): array { return $data;}, 10, 2);
// Vypnutí automatické registrace pro vybraného poskytovateleadd_filter('polski/social_login/auto_register', function (bool $auto, string $provider): bool { if ($provider === 'facebook') { return false; } return $auto;}, 10, 2);CSS třídy
Sekce “CSS třídy”.polski-social-login- kontejner tlačítek.polski-social-login__button- tlačítko přihlášení.polski-social-login__button--google- tlačítko Google.polski-social-login__button--facebook- tlačítko Facebook.polski-social-login__separator- oddělovač “nebo”
ID modulu
Sekce “ID modulu”social_login
Řešení problémů
Sekce “Řešení problémů”Tlačítko přesměrovává na chybovou stránku poskytovatele - zkontrolujte, zda URI přesměrování v konzoli poskytovatele přesně odpovídá adrese obchodu (pozor na https vs http a koncové lomítko).
Uživatel se po přihlášení nevytváří - ujistěte se, že je auto_register zapnuto. Pokud je vypnuto, přihlášení funguje pouze pro existující účty s odpovídající e-mailovou adresou.
Chyba “invalid_client” - zkontrolujte správnost Client ID a Client Secret. Ujistěte se, že nejsou žádné mezery na začátku nebo konci.
Facebook vyžaduje recenzi aplikace - pro základní přihlášení (e-mail, jméno) není recenze vyžadována. Pokud je aplikace v režimu sandbox, přihlásit se mohou pouze administrátoři a testeři přidaní v panelu Meta.
Hlášení problémů: github.com/wppoland/polski/issues