Drupal a přihlašování přes Facebook, Twitter, Google a další jednoduše

O přihlašování přes Facebook jsem na Maxiorlovi už psal. Drupal lze propojit i s celou řadou dalších služeb a kupodivu mnohem jednodušeji, než byste možná čekali. Nemusíte totiž pro každou službu využívat nový modul. Pojďme si to vyzkoušet.

Reklama

Nejčastěji jsem při tvorbě webových stránek žádán o to, abych je propojil s Facebookem ve smyslu přihlašování uživatelů přes Facebook. Těm se v okamžiku přihlášení vytvoří samozřejmě i účet v Drupalu, mohou pak využívat obojí. Výhoda je především v tom, že odpadá nudná registrace. Přihlášení přes Facebook umožní po vašem svolení přenést jméno, e-mail a další údaje do webu.

Jak se do Drupalu přihlašovat pomocí Facebooku jsme si ukazovali v článku Jak zprovoznit přihlášení přes Facebook do Drupalu. Článek si určitě přečtěte, je v něm zmíněno, jak si na Facebooku vytvořit novou aplikaci a získat z ní propojovací údaje pro svůj web. Jen dodám, že rozhraní Facebooku se od té doby trochu změnilo.

Dnes se ale podíváme na jiný modul s názvem HybridAuth Social Login. Ten v Drupalu zapouzdřuje výbornou knihovnu HybridAuth, která umožňuje přihlašování nejenom přes Facebook, ale i přes Twitter, Google, LinkedIn, Foursquare Yahoo, OpenID, Steam a velký počet dalších známých služeb.

Zprovoznění přihlašování je přitom maximálně jednoduché. Stačí si u dané služby vygenerovat přístupové údaje pro využívání vzdáleného přihlašování, tyto údaje zadat do Drupalu a jste hotovi. Ukážeme si to opět na případě Facebooku.

HybridAuth, Drupal a přihlašování přes Facebook

Začněte tím, že do složky sites/all/libraries nakopírujete knihovnu HybridAuth. Stáhněte si její balíček, rozbalte jej a do Drupalu nakopírujte složku hybridauth. Examples a changelog si můžete prohlédnout, ale do Drupalu je nekopírujte. Budete tak mít tuto strukturu:

  • sites/all/libraries/hybridauth
  • sites/all/libraries/hybridauth/install.php
  • sites/all/libraries/hybridauth/config.php
  • sites/all/libraries/hybridauth/index.php
  • sites/all/libraries/hybridauth/Hybrid
  • sites/all/libraries/hybridauth/Hybrid/…

Nyní do Drupalu nainstalujte modul HybridAuth Social Login. Po jeho zapnutí přejděte do Konfigurace > Uživatelé > HybridAuth. Authentication providers přeskočte a nyní mrkněte do dalších sekcí:

  • Required information – zapněte položky, které chcete získat při prvním přihlášení ze vzdálených služeb
  • Nastavení widgetu – upravte textík, který bude zobrazen nad tlačítkem Facebooku a dalších služeb v přihlašovacím formuláři. Upravte též velikosti ikonek.
  • Nastavení účtu – doporučuji ponechat volby Follow core a tedy řídit se tím, co je na webu nastaveno v Konfigurace > Uživatelé > Nastavení účtu.
  • Drupal forms – zde zapněte formuláře, u kterých se zobrazí tlačítko pro přihlášení přes Facebook a další sítě
  • Other settings – zde bych nic neměnil, snad jen případně adresu, na kterou může být člověk po přihlášení přes sociální síť přesměrován

Nyní se vraťte na Authentication providers. Zapněte ty sociální sítě, přes které chcete dovolit přihlašování do svého webu. Na ukázku vyzkoušíme Facebook. Nastavení nezapomeňte uložit.

HybridAuth v Drupalu

Poté si rozklikněte nastavení jednotlivých zapnutých sociálních sítí. U každé to bude vypadat trošku jinak, ale obvykle budete muset doplnit nějaké propojovací údaje. V případě Facebooku budete potřebovat Application ID a Application consumer secret. Oba bezpečnostní klíče si vygenerujete při vytváření nové FB aplikace.

Nastavení Facebooku u HybridAuth v Drupalu

Jak vás Drupal upozorní, musíte při vytváření FB aplikace nastavit správně údaje týkající se vašeho webu, jinak přihlašování nebude fungovat. Po jejím vytvoření se tedy na Facebooku přepněte na záložku Nastavení a klepněte na tlačítko Přidat platformu. Zvolte webovou stránku a zadejte URL svého webu. Nastavení pak uložte. Do App Domains poté zadejte adresu svého webu ve tvaru *.domena.tld.

Teprve poté zkopírujte klíče aplikace do Drupalu. Pokud nepřidáte nejprve webovou stránku, nepůjde vám políčko App Domains na Facebooku správně nastavit.

Jakmile máte klíče z Facebooku zkopírovány do Drupalu a nastavení uloženo, koukněte se v nastavení na Authentication window settings. Nastavuje zobrazení onoho známého dialogu, který se uživateli objeví v momentě, kdy se chce k webu přihlásit přes Facebook. Já používám New popup window s nastavením rozměrů vyskakovacího okna 500 x 300px. Pokud dáte moc velké rozměry, Facebook bude u přihlašovacího okna psát nežádoucí červené upozornění.

Přihlašování přes Facebook

No a to je v podstatě všechno. Zapnuli jsme jeden modul, překopírovali do něj klíče z Facebooku a když se nyní podíváte na přihlašovací formulář svého webu, uvidíte u něj definovaný textík a tlačítko pro přihlášení přes nastavené sociální sítě.

Přihlašovací formulář Drupalu s doplněným Facebookem

Jak se na propojení webů se sociálními sítěmi díváte vy? Používáte je na nových webech automaticky nebo čekáte až na žádosti uživatelů? A co váš názor z pohledu uživatelů? Přihlašujete se k webům přes Facebook nebo Twitter?

Reklama

Komentáře

Dobrý den, u toho Facebooku zakládání app jsem postupoval přesně jak jste psal, nejprve site url, uložit a pak vložit app domains, ale házelo to chyby s červeným trojúhelníkem a nešlo to uložit.

Takže pro ostatní - nezadávat app domain takto *.domena.tld ale pouze domena.tld

Přidat komentář