Mit vielen modernen Websites k?nnen sich Benutzer über ihre sozialen Netzwerkkonten anmelden. Mit der SitePoint -Community k?nnen Benutzer beispielsweise mit ihren Facebook-, Twitter-, Google-, Yahoo- oder Github -Konten anmelden, ohne sich für ein neues Konto zu registrieren.
In diesem Tutorial wird HybridAuth eingeführt - eine PHP -Bibliothek, die die Konstruktion sozialer Loginfunktionen vereinfacht.
HybridAuth fungiert als abstrakte API zwischen Anwendungen und verschiedenen sozialen APIs und Identit?tsanbietern.
Schlüsselpunkte
- HybridAuth ist eine PHP -Bibliothek, mit der die Integration der sozialen Anmeldung in Ihre Website vereinfacht und als mittlere Schicht zwischen Ihrer Anwendung und verschiedenen sozialen APIs fungiert.
- Es wird empfohlen, HybridAuth über Komponist zu installieren, und für jedes soziale Netzwerk wie Facebook, Google und Twitter sind bestimmte Anmeldeinformationen erforderlich, um ordnungsgem?? zu funktionieren.
- Diese Bibliothek verwendet OAuth für einen sicheren Zugriff und stellt sicher, dass Benutzeranmeldeinformationen w?hrend der Authentifizierung geschützt sind.
- HybridAuth erm?glicht benutzerdefinierte Benutzerauthentifizierungsprozesse, die sich nicht auf E -Mails oder Benutzernamen verlassen, sondern die Verwendung von eindeutigen Kennungen, die von sozialen Netzwerken bereitgestellt werden.
- Dieses Tutorial enth?lt eine praktische Demonstration mit dem Slim PHP-Framework, in dem die Schritte von der Einrichtung einer Umgebung zum Schreiben einer vollwertigen Demo-Anwendung beschrieben werden, die die Registrierung, Anmeldung und Anmeldung von Benutzer durch ein soziales Netzwerk abwickelt.
Installation
Komponist wird empfohlen, HybridAuth zu installieren. Wir werden Slim auch als Grundlage für die Probenanwendung verwenden.
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
Soziale Login mit HybridAuth
Kopieren Sie die /vendor/hybridauth/hybridauth/hybridauth
und config.php
(HybridAuth -Endpunkt -Dateien) in den Ordner index.php
und
index.php
benennen Sie die hybrid.php
-Datei in index.php
um, da
config.php
Füllen Sie die Datei
http://slim.local
Wenn Sie beispielsweise Benutzer über Facebook, Google und Twitter auf Ihrer Website anmelden m?chten, sollte Ihr Profil so aussehen. Meine Anwendungs ??-URL ist
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>
base_url
Hinweis: Der Parameter hybrid.php
muss in diesem Fall auf die HybridAuth -Endpoint -Datei
Weitere Informationen finden Sie in der Dokumentation zur HybridAuth -Konfiguration.
Laden Sie als n?chstes den Anbieter -Autoloader und instanziieren Sie die Klasse.
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
authenticate
Verwenden Sie die Methode
für Facebook:
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>
für Twitter:
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
für Google:
<code>$adapter = $hybridauth->authenticate( "Google" );</code>
Die an authenticate()
übergebenen Parameter müssen mit der Anbieter -Array -Taste in der Datei config.php
übereinstimmen.
, um die Profildaten des Benutzers abzurufen. getUserProfile()
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
ist ein Objekt, das die zurückgegebenen Benutzerprofildaten enth?lt. $user_profile
Um weitere Anbieter hinzuzufügen, wie z. B. GitHub, kopieren Sie die
-Datei von GitHub.php
zu einem Ort in der Anwendung (in diesem Fall das Anbieterverzeichnis). Laden Sie die Datei mit einem Anbieter -Wrapper, wobei vendor/hybridauth/hybridauth/additional-providers/hybridauth-github/Providers
der Pfad zur GitHub -Datei und path
der Name seiner PHP -Klasse ist. class
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>Verwenden Sie die
-Methode von HybridAuth, um Benutzer mit GitHub zu authentifizieren, wie unten gezeigt: authenticate()
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
Implementierung der sozialen Anmeldung
Normalerweise verwendet jede Website mit einem Login- und Registrierungssystem die E -Mail -Adresse oder den Benutzernamen des Benutzers, um ihr Konto zu identifizieren und anzumelden. Wenn Sie planen, soziale Anmeldung zu implementieren, wird empfohlen, den Benutzernamen oder die E -Mail des Benutzers zur Authentifizierung nicht zu verwenden.Einer der Gründe, gegen diese Praxis einzuwenden, ist, dass Twitter beispielsweise die E -Mail -Adresse des Benutzers nicht zurückgibt, die durch sie authentifiziert wurde. Das hei?t, die zurückgegebenen Profildaten enthalten nicht die E -Mail des Benutzers.
Die meisten, wenn nicht alle, sozialen Anbieter wie Facebook, Twitter, Google, LinkedIn und sogar GitHub geben nach der Autorisierung eine eindeutige Benutzer -ID -Nummer zurück.
Melden Sie sich nicht mit der E -Mail des Benutzers im Konto des Benutzers an, sondern verwenden Sie die vom Social Provider zurückgegebene Kennung, wie unten gezeigt: Erstellen Sie ein Benutzerkonto, wenn der Benutzer kein Konto hat. Konto gehen auf die Website.
eine Demo -Anwendung schreiben
Wir werden das Slim PHP -Framework verwenden, um eine einfache Webanwendung zu erstellen, um praktische Beispiele für die Implementierung eines sozialen Anmeldes mit HybridAuth zu demonstrieren.Ich gehe davon aus, dass Sie Hybridauth- und Slim -Frameworks installiert haben. Ansonsten finden Sie den obigen Installationshandbuch.
Anwendungsstruktur
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>Dies ist der SQL für die Datenbanktabelle.
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>ein Anwendungsmodell schreiben
Der gesamte Code für das Anwendungsmodell sollte in der Datei app_model.php im SRC -Ordner platziert werden.
Der Dateinamespace ist Modell, gefolgt von der Klassendefinition und dem Konstruktor.
<code>$adapter = $hybridauth->authenticate( "Google" );</code>
Methode gibt true zurück, wenn die Kennung (Benutzeridentifikationsnummer) bereits in der Datenbank vorhanden ist, ansonsten false zurückgibt. identifier_exists
<code>$user_profile = $adapter->getUserProfile();</code>
Methode Einfügen Benutzerprofildaten in die Datenbank ein. register_user
<code>"Github" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "wrapper" => [ "path" => "providers/GitHub.php", "class" => "Hybrid_Providers_GitHub" ] ]</code>
-Methode fügt die erstellte Benutzersitzung der HybridAuth -Sitzung hinzu (erstellt, nachdem der Anbieter den Benutzer erfolgreich autorisiert). login_user
<code>$adapter = $hybridauth->authenticate( "Github" );</code>
Methode l?schen oder zerst?ren Sie die Sitzung eines Benutzers beim Klicken auf den Link zur Abmeldung. logout_user
<code>|-scr/ |----App_Model.php |-templates/ |----login.php |----welcome.php |-vendor/ |-composer.json |-config.php |-hybrid.php |-index.php |-.htaccess</code>Zuletzt gibt die Getter -Methode den Namen, die E -Mail und die Avatar -URL des Benutzers zurück.
<code>{ "require": { "slim/slim": "2.*", "hybridauth/hybridauth": "2.3.0" } }</code>
Registrieren Sie PSR-4 Autoloader für die Modellklasse, indem Sie den folgenden Code zu Ihrer Composer.json-Datei hinzufügen.
<code>return [ "base_url" => "http://slim.local/", "providers" => [ "Google" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], ], "Facebook" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "trustForwarded" => false ], "Twitter" => [ "enabled" => true, "keys" => [ "key" => "", "secret" => "" ] ], ], "debug_mode" => true, "debug_file" => "bug.txt", ];</code>
reiten Sie composer dump-autoload
aus, um die vendor/autoload.php
Datei zu regenerieren.
Anwendungslogik
Komponist in Anwendung index.php
laden Sie die Datei automatisch die Datei und instanziiert Slim.
<code>require 'vendor/autoload.php'; $hybridauth = new Hybrid_Auth( 'config.php' );</code>
Erstellen Sie ein Verzeichnis namens Vorlagen, um alle Vorlagendateien zu speichern, und registrieren oder konfigurieren Sie es in Slim wie folgt:
<code>$adapter = $hybridauth->authenticate( "Facebook" );</code>
Erstellen Sie eine schlanke Datenbank -Singleton -Ressource, die die Datenbankverbindungsinstanz zurückgibt, wenn sie aufgerufen werden.
<code>$adapter = $hybridauth->authenticate( "Twitter" );</code>
Eine weitere Singleton -Ressource, die eine HybridAuth -Instanz zurückgibt, wird ebenfalls erstellt.
<code>$adapter = $hybridauth->authenticate( "Google" );</code>
instanziieren Sie die Anwendungsmodellklasse, indem Sie eine Datenbankverbindung als Parameter übergeben.
<code>$user_profile = $adapter->getUserProfile();</code>
Die folgende authenticate
-Funktion, wenn der Benutzer als Parameter hinzugefügt wird, wenn der Benutzer nicht angemeldet ist, wird er auf die Anmeldeseite umgeleitet.
<code>"Github" => [ "enabled" => true, "keys" => [ "id" => "", "secret" => "" ], "wrapper" => [ "path" => "providers/GitHub.php", "class" => "Hybrid_Providers_GitHub" ] ]</code>
Umleitet den angemeldeten Benutzer auf die Anmeldeseite, wenn er auf die Homepage oder die Indexseite der App zugreift.
<code>$adapter = $hybridauth->authenticate( "Github" );</code>
Folgendes ist die Routing -Definition für soziale Anmeldungslinks. Das hei?t, wenn der Link http://slim.local/login/facebook
klickt wird, leitet HybridAuth den Benutzer zur Autorisierung auf Facebook weiter. Gleiches gilt für Twitter http://slim.local/login/twitter
, Google http://slim.local/login/google
und alle anderen unterstützten Anbieter.
<code>|-scr/ |----App_Model.php |-templates/ |----login.php |----welcome.php |-vendor/ |-composer.json |-config.php |-hybrid.php |-index.php |-.htaccess</code>
Aufrufen der authenticate()
-Methode von HybridAuth leitet den Benutzer in den angegebenen sozialen Anbieter um.
Nach erfolgreicher Autorisierung füllt die Variable $user_profile
die Benutzerprofildaten.
rufen Sie die Methode identifier_exists()
auf, um zu überprüfen, ob die Benutzerkennung in der Datenbank vorliegt. Wenn wahr, meldet sich der Benutzer auf der Website an. Andernfalls wird ein Konto für den Benutzer erstellt und der Benutzer wird angemeldet.
Dies ist der Code, um die Route auszuzeichnen.
CREATE TABLE IF NOT EXISTS `users` ( `id` int(10) NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), `identifier` varchar(50) NOT NULL, UNIQUE KEY `identifier` (`identifier`), `email` varchar(50) DEFAULT NULL, `first_name` varchar(20) DEFAULT NULL, `last_name` varchar(20) DEFAULT NULL, `avatar_url` varchar(255) ) ENGINE=InnoDB;
Die in der Modellklasse diskutierte logout_user
-Methode, die wir in der Modellklasse besprochen haben, wird aufgerufen, um die Benutzersitzung zu zerst?ren und sich auch vom Verbindungsanbieter des Benutzers abzuloggen. Hybrid_Auth::logoutAllProviders()
<?php namespace Model; class App_Model { /** @var object Database connection */ private $conn; /** * Instantiate the model class. * * @param object $db_connection DB connection */ public function __construct(\PDO $db_connection) { $this->conn = $db_connection; } // ... rest of the methods ... }Führen Sie schlie?lich die schlanke Anwendung aus.
/** * Check if a HybridAuth identifier already exists in DB * * @param int $identifier * * @return bool */ public function identifier_exists($identifier) { try { $sql = 'SELECT identifier FROM users'; $query = $this->conn->query($sql); $result = $query->fetchAll(\PDO::FETCH_COLUMN, 0); return in_array($identifier, $result); } catch ( \PDOException $e ) { die( $e->getMessage() ); } }Siehe das Github -Repository der Anwendung für den vollst?ndigen Quellcode.
Schlussfolgerung
In diesem Artikel haben wir gelernt, wie man soziale Anmeldungsfunktionen in Websites integriert, indem wir die leistungsstarke und robuste HybridAuth -PHP -Bibliothek verwenden.Wenn Sie Fragen oder Beitr?ge haben, teilen Sie uns dies bitte in den Kommentaren mit.
FAQ (FAQ) für die soziale Anmeldung mit PHP und HybridAuth
Was ist HybridAuth und wie wird es mit PHP für soziale Anmeldung verwendet?
HybridAuth ist eine beliebte Open -Source -PHP -Bibliothek. Sie k?nnen Webentwickler auf einfache Weise soziale Anwendungen erstellen, indem sie eine einfache M?glichkeit bieten, Benutzer über ihre Social -Media -Konten zu authentifizieren. HybridAuth fungiert als abstrakte API zwischen Anwendungen und verschiedenen sozialen APIs und Identit?tsanbietern wie Facebook, Twitter und Google. Es funktioniert durch Integration in vorhandene Anmeldesysteme in PHP -Anwendungen und das Hinzufügen von sozialen Anmeldungsfunktionen.
Wie installiere und konfiguriere ich HybridAuth in meiner PHP -Anwendung?
hybridAuth kann über Composer (das Abh?ngigkeitsmanagement -Tool in PHP) installiert werden. Nach der Installation müssen Sie es konfigurieren, indem Sie den Anbieter einrichten, den Sie verwenden m?chten (soziales Netzwerk). Jeder Anbieter ben?tigt eine einzigartige Reihe von Parametern wie Schlüssel und Schlüssel, die Sie durch das Erstellen von Anwendungen auf den Entwicklerplattformen jedes sozialen Netzwerks erhalten k?nnen.
Was ist die Sicherheitsniveau von HybridAuth für soziale Anmeldung?
HybridAuth ist sehr sicher, da es OAuth verwendet, einen Open -Access -Delegiertenstandard. OAuth bietet einen sicheren ausgewiesenen Zugriff, was bedeutet, dass Benutzer den Websites die Berechtigung erteilen k?nnen, auf ihre Informationen auf anderen Websites zugreifen zu k?nnen, ohne ihnen ein Kennwort zu geben. Dies macht HybridAuth zu einer sicheren Option für die soziale Anmeldung.
Kann ich HybridAuth für soziale Anmeldung auf mehreren Websites verwenden?
Ja, HybridAuth kann auf mehreren Websites verwendet werden. Sie müssen nur die richtige Callback -URL -Konfigurationsbibliothek für jede Website verwenden. Dies macht es zu einer flexiblen L?sung für Entwickler, die mehrere Websites verwalten.
Wie kann man mit Fehlern in HybridAuth umgehen?
HybridAuth verfügt über ein integriertes Fehlerbehandlungssystem. Wenn ein Fehler auftritt, wird eine Ausnahme ausgel?st, die Sie basierend auf den Fehlerbehandlungsrichtlinien Ihrer Anwendung fangen und verarbeiten k?nnen. Dies erleichtert das Debuggen und Behebung von Problemen.
Kann ich das Aussehen und den Stil von HybridAuths sozialem Login -Taste anpassen?
Ja, Sie k?nnen das Aussehen und den Stil der sozialen Login -Taste anpassen. HybridAuth bietet soziale Anmeldungsfunktionen, aber das Design und das Layout der Schaltfl?chen liegt ganz bei Ihnen.
Wie aktualisiere ich die Hybridauth -Bibliothek in meiner PHP -Anwendung?
Das Aktualisieren von HybridAuth ist so einfach wie ein Befehl im Komponisten. Dies stellt sicher, dass Sie immer die neueste Version mit allen Sicherheitspatches und Updates haben.
Kann ich HybridAuth mit anderen PHP -Frameworks verwenden?
Ja, HybridAuth ist kein Framework und kann mit jedem PHP -Framework verwendet werden. Dies macht es zu einer vielseitigen Wahl für Entwickler, die verschiedene PHP -Frameworks verwenden.
Wie testet ich Hybridauths soziale Anmeldung in meiner lokalen Entwicklungsumgebung?
Das Testen der sozialen Anmeldung lokal kann schwierig sein, da soziale Netzwerke gültige Rückruf -URLs erfordern. Sie k?nnen Ihren lokalen Server jedoch mithilfe von Tools wie NGROK dem Internet aussetzen und diese URL als Callback -URL verwenden.
Kann ich Benutzer mit nicht-sozialen Konten wie E-Mails und Passw?rtern mit HybridAuth authentifizieren?
Nein, HybridAuth ist für die soziale Anmeldung ausgelegt. Für eine herk?mmliche E -Mail- und Kennwortauthentifizierung müssen Sie andere PHP -Bibliotheken verwenden oder Ihr eigenes Authentifizierungssystem erstellen.
Die Ausgabe beh?lt die Originalbildformatierung und die Platzierung bei.
Das obige ist der detaillierte Inhalt vonSoziale Anmeldungen in PHP mit HybridAuth. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren
