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.

Reklama

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.

Reklama

Přidat komentář