{"id":26656,"date":"2021-04-27T16:02:00","date_gmt":"2021-04-27T13:02:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26656"},"modified":"2021-10-18T03:54:17","modified_gmt":"2021-10-18T00:54:17","slug":"logowanie-spolecznosciowe-w-php-przy-uzyciu-biblioteki-hybridauth","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/logowanie-spolecznosciowe-w-php-przy-uzyciu-biblioteki-hybridauth\/","title":{"rendered":"Logowanie spo\u0142eczno\u015bciowe w PHP przy u\u017cyciu biblioteki HybridAuth"},"content":{"rendered":"<p>Integracja funkcji logowania spo\u0142eczno\u015bciowego w serwisie to obecnie trend. Ta funkcja u\u0142atwia proces logowania i rejestracji u\u017cytkownika. Je\u015bli u\u017cytkownik jest gotowy do korzystania ze swojego profilu spo\u0142eczno\u015bciowego w Twojej witrynie, nie musi wype\u0142nia\u0107 formularza rejestracyjnego, aktywuj swoje konto.<\/p>\n<p>Serwisy spo\u0142eczno\u015bciowe nie udost\u0119pniaj\u0105 r\u00f3wnie\u017c prywatnych informacji u\u017cytkownika serwisu. Zamiast tego dostarczaj\u0105 tylko podstawowe informacje, takie jak imi\u0119 i nazwisko, p\u0142e\u0107, identyfikator spo\u0142eczno\u015bciowy (w okre\u015blonej witrynie spo\u0142eczno\u015bciowej), e-mail. Aplikacja internetowa mo\u017ce poprosi\u0107 o wi\u0119cej szczeg\u00f3\u0142\u00f3w u\u017cytkownika. Ale u\u017cytkownik musi da\u0107 dost\u0119p do dodatkowych informacji. To ca\u0142kowicie zale\u017cy od tego, czy u\u017cytkownik da dost\u0119p do wi\u0119kszej ilo\u015bci informacji, czy nie. Niekt\u00f3re serwisy spo\u0142eczno\u015bciowe, takie jak Twitter, nie udost\u0119pniaj\u0105 adresu e-mail u\u017cytkownika. Chodzi o to, \u017ce korzystanie z profilu w serwisie spo\u0142eczno\u015bciowym do interakcji z witryn\u0105 jest bezpieczne.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20879-608236eade4f2.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20879-608236eade4f2.png\" alt=\"Logowanie spo\u0142eczno\u015bciowe w PHP przy u\u017cyciu biblioteki HybridAuth\" ><\/a><\/p>\n<p>Dla programisty napisanie kodu do logowania spo\u0142eczno\u015bciowego nie jest \u0142atwe. Najpierw musz\u0105 przeczyta\u0107 dokumentacj\u0119 dostarczon\u0105 przez serwisy spo\u0142eczno\u015bciowe, takie jak Facebook, Twitter. Ka\u017cda witryna spo\u0142eczno\u015bciowa ma w\u0142asn\u0105 bibliotek\u0119 i w\u0142asny spos\u00f3b na integracj\u0119 funkcji logowania spo\u0142eczno\u015bciowego.<\/p>\n<p>Na przyk\u0142ad chcesz doda\u0107 login spo\u0142eczno\u015bciowy za pomoc\u0105 Facebooka i Twittera. W takim przypadku programista musi napisa\u0107 inny kod dla obu serwis\u00f3w spo\u0142eczno\u015bciowych, zgodnie z ich oficjaln\u0105 dokumentacj\u0105.<\/p>\n<p>Deweloperowi nie jest \u0142atwo opracowa\u0107 kod, je\u015bli masz wi\u0119cej ni\u017c jedn\u0105 witryn\u0119 spo\u0142eczno\u015bciow\u0105, z kt\u00f3r\u0105 mo\u017cna wchodzi\u0107 w interakcj\u0119.<\/p>\n<p>Dzi\u0119ki <a href=\"https:\/\/hybridauth.github.io\/hybridauth\/index.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">HybridAuth<\/a> \u2013 open source&#8217;owemu znakowi spo\u0142eczno\u015bciowemu na bibliotece PHP. Zesp\u00f3\u0142 HybridAuth u\u0142atwia \u017cycie naszym programistom.<\/p>\n<p>Korzystaj\u0105c z tej biblioteki, nie musimy czyta\u0107 o dokumentacji serwis\u00f3w spo\u0142eczno\u015bciowych, jak zintegrowa\u0107 logowanie spo\u0142eczno\u015bciowe w witrynie. To, co wszyscy musimy zrobi\u0107, to poprawnie zainstalowa\u0107 i skonfigurowa\u0107 bibliotek\u0119 HybridAuth oraz zarejestrowa\u0107 aplikacj\u0119 w serwisach spo\u0142eczno\u015bciowych (co jest konieczne, nawet je\u015bli nie korzystamy z HybridAuth Library).<\/p>\n<h3>Instalacja<\/h3>\n<p>Aby zainstalowa\u0107 bibliotek\u0119 HybridAuth, zalecane jest u\u017cycie kompozytora. Je\u015bli nie masz zainstalowanego kompozytora w swoim systemie, mo\u017cesz go pobra\u0107 z ich <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">oficjalnej strony internetowej<\/a>.<\/p>\n<p>Utw\u00f3rz plik composer.json w katalogu g\u0142\u00f3wnym projektu i umie\u015b\u0107 w nim poni\u017cszy kod.<\/p>\n<pre><code>{\n\u00a0\u00a0\u00a0\u00a0\"require\": {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"hybridauth\/hybridauth\": \"2.9.6\"\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Przeszli\u015bmy \u201e2.9.6&quot;, poniewa\u017c w momencie pisania tego artyku\u0142u jest to <a href=\"https:\/\/github.com\/hybridauth\/hybridauth\/releases\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">najnowsza stabilna wersja<\/a> biblioteki HybridAuth.<\/p>\n<p>Otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom polecenie <code>composer install<\/code>. Zainstaluje w systemie bibliotek\u0119 HybridAuth w wersji 2.9.6.<\/p>\n<h3>Konfiguracja<\/h3>\n<p>Upewnij si\u0119, \u017ce poprawnie konfigurujesz bibliotek\u0119. Je\u015bli nie uda ci si\u0119 go poprawnie skonfigurowa\u0107, nie uzyskasz korzy\u015bci z biblioteki i popadniesz w frustracj\u0119.<\/p>\n<p>Skopiuj 2 pliki config.php i index.php z katalogu vendorhybridauthhybridauthhybridauth i umie\u015b\u0107 je w katalogu g\u0142\u00f3wnym projektu. Zmie\u0144 nazw\u0119 pliku index.php na hybridauth.php, poniewa\u017c mo\u017cemy mie\u0107 inny index.php w tej samej lokalizacji.<\/p>\n<p>Otw\u00f3rz plik config.php i dodaj klucze aplikacji oraz klucz tajny w tablicy powi\u0105zanych dostawc\u00f3w.<\/p>\n<p><a href=\"https:\/\/hybridauth.github.io\/hybridauth\/userguide.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Kliknij tutaj,<\/a> aby uzyska\u0107 list\u0119 wszystkich dostawc\u00f3w us\u0142ug spo\u0142eczno\u015bciowych obs\u0142ugiwanych przez HybridAuth. Dostawc\u00f3w i dodatkowych dostawc\u00f3w znajdujemy r\u00f3wnie\u017c w samej zainstalowanej bibliotece. Aby zobaczy\u0107 dostawc\u00f3w, przejd\u017a do vendorhybridauthhybridauthhybridauthHybridProviders, a dla dodatkowych dostawc\u00f3w sprawd\u017a katalog vendorhybridauthhybridauthadditional-providers.<\/p>\n<p>Powiedzmy, \u017ce musimy okre\u015bli\u0107 szczeg\u00f3\u0142y aplikacji Facebooka. W tym celu w config.php dla dostawcy Facebooka nasz kod wygl\u0105da nast\u0119puj\u0105co.<\/p>\n<pre><code>return array(\n\u00a0\u00a0\u00a0\u00a0\"base_url\" =&gt; \"YOUR_SITE_URL\/hybridauth.php\",\n\u00a0\u00a0\u00a0\u00a0\"providers\" =&gt; array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/other providers code\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Facebook\" =&gt; array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"enabled\" =&gt; true,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"keys\" =&gt; array(\"id\" =&gt; \"YOUR_APP_ID\", \"secret\" =&gt; \"YOUR_APP_SECRET\"),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"trustForwarded\" =&gt; false,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/other providers code\n\u00a0\u00a0\u00a0\u00a0),\n);<\/code><\/pre>\n<p>Upewnij si\u0119, \u017ce zast\u0105pi\u0142e\u015b symbole zast\u0119pcze YOUR_APP_ID i YOUR_APP_SECRET rzeczywistymi warto\u015bciami.<\/p>\n<p>Przekazali\u015bmy r\u00f3wnie\u017c \u015bcie\u017ck\u0119 pliku hybridauth.php dla base_url.<\/p>\n<p>Nast\u0119pnie otw\u00f3rz plik hybridauth.php i wprowad\u017a nast\u0119puj\u0105ce zmiany.<\/p>\n<p>Zast\u0105pi\u0107<\/p>\n<pre><code>require_once( \"Hybrid\/Auth.php\" );\nrequire_once( \"Hybrid\/Endpoint.php\" );\n\u00a0\nHybrid_Endpoint::process();<\/code><\/pre>\n<p>Z<\/p>\n<pre><code>require 'vendor\/autoload.php';\n\u00a0\nHybrid_Endpoint::process();<\/code><\/pre>\n<h3>Rzeczywisty kod logowania spo\u0142eczno\u015bciowego przy u\u017cyciu biblioteki HybridAuth<\/h3>\n<p>Na tym etapie zako\u0144czyli\u015bmy instalacj\u0119 i konfiguracj\u0119 biblioteki. Nast\u0119pnie musimy napisa\u0107 rzeczywisty kod logowania spo\u0142eczno\u015bciowego.<\/p>\n<p>Powiedzmy, \u017ce potrzebujemy logowania spo\u0142eczno\u015bciowego na Facebooku, a nasz kod b\u0119dzie taki jak poni\u017cej. Zak\u0142adamy, \u017ce masz login.php w folderze g\u0142\u00f3wnym, w kt\u00f3rym musisz napisa\u0107 kod.<\/p>\n<p><strong>logowanie.php<\/strong><\/p>\n<pre><code>require 'vendor\/autoload.php';\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$hybridauth = new Hybrid_Auth( 'config.php' );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$adapter = $hybridauth-&gt;authenticate( \"Facebook\" ); \/\/it can be Twitter, Google etc.\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$user_profile = $adapter-&gt;getUserProfile();\n} catch(Exception $e){\n\u00a0\u00a0\u00a0\u00a0echo 'Oops, we ran into an issue! '. $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Parametr przekazany do metody authentication() musi by\u0107 zgodny z kluczem dostawcy w pliku config.php. Funkcja authentication() sprawdza, czy u\u017cytkownik jest uwierzytelniony. Je\u015bli u\u017cytkownik nie jest uwierzytelniony, przekierowuje do strony logowania powi\u0105zanej witryny spo\u0142eczno\u015bciowej. Po pomy\u015blnym uwierzytelnieniu u\u017cytkownik ponownie przekierowuje do naszego pliku sign-in.php.<\/p>\n<p>W nast\u0119pnym wierszu pobieramy dane uwierzytelnionego u\u017cytkownika za pomoc\u0105 funkcji getUserProfile().<\/p>\n<p>Aby wylogowa\u0107 u\u017cytkownika do\u0142\u0105czonego do dostawcy wystarczy wpisa\u0107 poni\u017cszy kod w naszym pliku logout.php.<\/p>\n<p><strong>wyloguj.php<\/strong><\/p>\n<pre><code>require 'vendor\/autoload.php';\n\u00a0\nHybrid_Auth::logoutAllProviders();<\/code><\/pre>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz, jak doda\u0107 skryptowy login spo\u0142eczno\u015bciowy w PHP za pomoc\u0105 biblioteki HybridAuth. Je\u015bli masz jakie\u015b pytania lub sugestie, zostaw komentarz poni\u017cej. Mo\u017cesz r\u00f3wnie\u017c przeczyta\u0107 nasz artyku\u0142 <a href=\"https:\/\/themewp.inform.click\/pl\/system-logowania-spolecznosciowego-za-pomoca-laravel-socialite\/\" title=\"System logowania spo\u0142eczno\u015bciowego przy u\u017cyciu Laravel Socialite\">System logowania spo\u0142eczno\u015bciowego przy u\u017cyciu Laravel Socialite<\/a>.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czy chcesz zintegrowa\u0107 logowanie spo\u0142eczno\u015bciowe z witryn\u0105 PHP? W tym artykule pokazujemy, jak mo\u017cemy doda\u0107 funkcj\u0119 logowania spo\u0142eczno\u015bciowego za pomoc\u0105 biblioteki HybridAuth.<\/p>\n","protected":false},"author":1,"featured_media":21761,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[180,277],"tags":[847],"class_list":["post-26656","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chrome-8","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=26656"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26656\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21761"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=26656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=26656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=26656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}