Jak na to: Drupal 8 a přihlašování přes sociální sítě

Drupal 8 vám za pomoci několika doplňkových modulů umožní velmi snadné přihlašování uživatelů pomocí různých sociálních sítí. Stačí vše správně nastavit. Podívejme se, jak využít pro přihlášení Facebook nebo účet u Google.

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.

Přihlašování přes Facebook zakomponované do Drupalu 8

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_.

Přihlašování přes Facebook a Google v Drupalu 8

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.

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

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.

Komentáře k článku

návštěvník

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?

Profile picture for user Jan Polzer

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í.

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru