Tématu jsem se v minulosti už věnoval. Mám tu článek o přihlašování v Drupalu 7 s modulem HybridAuth Social Login. Nebo starší, popisující modul Drupal for Facebook. Doba pokročila a je potřeba mít nějaké řešení pro Drupal 8 a zanedlouho i nastupující devítku.
I v současném Drupalu můžete samozřejmě přihlašování přes sociální sítě využít. Všechny se točí okolo Drupal Social Initiative a modulu Social API. K dnešnímu dni jsem napočítal 31 modulů, které na Social API staví a nabízejí přihlašování. Viz domovská stránka modulu.
Kromě toho, že Social API slouží jako základ pro napojení na sociální sítě a přihlašování, lze jej obohatit i o možnost posílat příspěvky na sociální sítě přímo z Drupalu. Aktuálně na LinkedIn, Twitter, Facebook nebo na Slack.
V článku ale zůstanu jenom u využití přihlašovacích údajů.
Přihlášení do Drupalu 8 pomocí Facebooku
Kromě základního Social API budete potřebovat i modul Social Auth Facebook. Modul závisí ještě na dalších PHP knihovnách pro komunikaci s Facebookem a jediná spolehlivá metoda, jak vše nainstalovat a rozběhnout na první dobrou, je instalace přes Composer:
composer require drupal/social_auth_facebook
Příkaz vám do Drupalu stáhne oba moduly i jejich potřebné závislosti. Pak už jen zapněte modul přes drush nebo klasicky přes administrační rozhraní Drupalu 8.
Podpora pro Ludwig bohužel zatím chybí, takže pokud nemáte k dispozici hosting s příkazovým řádkem nebo virtuální server, rozběhněte si to na lokále a poté překopírujte přes FTP.
Nahoře si přepněte aplikaci do stavu On a přihlášení by vám mělo pomalu začít fungovat.
Přihlášení do Drupalu 8 pomocí Google
Postup je podobný jako pro Facebook a na webu samozřejmě můžete mít obojí, resp. kterékoli z dalších dostupných přihlašování, které Social Auth prostřednictvím doplňkových modulů podporuje.
Instalace opět probíhá přes Composer následujícím příkazem, který stáhne do Drupalu vše potřebné:
composer require drupal/social_auth_google
A samotné přihlášení? Blok nebo úprava stávajícího formuláře
Nastavení bychom tedy měli hotové. Když se podíváte na přihlašovací formulář v Drupalu, tak vás teď zřejmě zarazí, že tam nikde přihlášení přes Facebook ani Google není vidět. To je v pořádku.
Celé řešení počítá s tím, že si do nějakého regionu zapnete blok s názvem Social Auth Login. Ten zobrazí odpovídající loga pro přihlašování.
Alternativním řešením, které já mám raději, je prostě použití odkazů směřujících na adresy /user/login/facebook, resp. /user/login/google.
Ty můžete dostat do přihlašovacího formuláře například úpravou twigové šablony nebo pomocí funkce theme_form_alter() v souboru *.theme ve vašem tématu vzhledu. Nezapomeňte si ji přejmenovat místo theme_ na vasetema_.
Jednoduchá ukázka implementace takové funkce:
function vasetema_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) { switch ($form_id){ case 'user_register_form': $form['social']['#markup'] = '<a href="/user/login/facebook" class="fb-link">'.t('Přihlášení přes Facebook').'</a>'; $form['social']['#markup'] .= '<a href="/user/login/google" class="google-link">'.t('Přihlášení přes Google').'</a>'; break; case 'user_login_form': $form['social']['#markup'] = '<a href="/user/login/facebook" class="fb-link">'.t('Přihlášení přes Facebook').'</a>'; $form['social']['#markup'] .= '<a href="/user/login/google" class="google-link">'.t('Přihlášení přes Google').'</a>'; break; } }
Jak takto upravený přihlašovací a registrační formulář vypadá v praxi, se můžete podívat například na eshopech zČech.cz nebo Popstore.cz.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Composer na Websupportu, stejně jako na řadě jiných hostingů pravděpodobně naráží na limit paměti. Doporučuji si zkopírovat composer.json a composer.lock do počítače, tam provést potřebné úpravy či aktualizace, na server pak tyto dva soubory vrátit a spustit tam composer install. Program se podívá na změny v těch souborech a doinstaluje vše potřebné, aniž by spouštěl prověřování a hledání, při kterém na hostingu padá.
Těšme se na dobu, kdy tu bude Composer 2 a těmto problémům odzvoní.
Díky, zkusím to
Super článek děkuji. Bohužel jsem se zasekl na SSH a composeru :D ať dělám, co dělám na websupportu se mi nedaří dokončit.
Nešly by dát data instalované composerem někam ke stažení, prosím?