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!

Lange URLs, die oft mit Schlüsselwörtern und Tracking -Parametern überfüllt sind, können Besucher abschrecken. Ein URL -Verkürzungsskript bietet eine Lösung, die präzise Links erstellt, die ideal für soziale Medien und andere Plattformen sind. Diese Skripte sind für einzelne Websites a wertvoll

Laravel vereinfacht die Behandlung von temporären Sitzungsdaten mithilfe seiner intuitiven Flash -Methoden. Dies ist perfekt zum Anzeigen von kurzen Nachrichten, Warnungen oder Benachrichtigungen in Ihrer Anwendung. Die Daten bestehen nur für die nachfolgende Anfrage standardmäßig: $ Anfrage-

Dies ist der zweite und letzte Teil der Serie zum Aufbau einer Reaktionsanwendung mit einem Laravel-Back-End. Im ersten Teil der Serie haben wir eine erholsame API erstellt, die Laravel für eine grundlegende Produktlistenanwendung unter Verwendung von Laravel erstellt hat. In diesem Tutorial werden wir Dev sein

Laravel bietet eine kurze HTTP -Antwortsimulationssyntax und vereinfache HTTP -Interaktionstests. Dieser Ansatz reduziert die Code -Redundanz erheblich, während Ihre Testsimulation intuitiver wird. Die grundlegende Implementierung bietet eine Vielzahl von Verknüpfungen zum Antworttyp: Verwenden Sie Illuminate \ Support \ facades \ http; Http :: fake ([ 'Google.com' => 'Hallo Welt',, 'github.com' => ['foo' => 'bar'], 'Forge.laravel.com' =>

Die PHP Client -URL -Erweiterung (CURL) ist ein leistungsstarkes Tool für Entwickler, das eine nahtlose Interaktion mit Remote -Servern und REST -APIs ermöglicht. Durch die Nutzung von Libcurl, einer angesehenen Bibliothek mit Multi-Protokoll-Dateien, erleichtert PHP Curl effiziente Execu

Möchten Sie den dringlichsten Problemen Ihrer Kunden in Echtzeit und Sofortlösungen anbieten? Mit Live-Chat können Sie Echtzeitgespräche mit Kunden führen und ihre Probleme sofort lösen. Sie ermöglichen es Ihnen, Ihrem Brauch einen schnelleren Service zu bieten

Die 2025 PHP Landscape Survey untersucht die aktuellen PHP -Entwicklungstrends. Es untersucht Framework -Nutzung, Bereitstellungsmethoden und Herausforderungen, die darauf abzielen, Entwicklern und Unternehmen Einblicke zu geben. Die Umfrage erwartet das Wachstum der modernen PHP -Versio

In diesem Artikel werden wir das Benachrichtigungssystem im Laravel -Web -Framework untersuchen. Mit dem Benachrichtigungssystem in Laravel können Sie Benachrichtigungen an Benutzer über verschiedene Kanäle senden. Heute werden wir diskutieren, wie Sie Benachrichtigungen OV senden können


Heiße KI -Werkzeuge

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

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

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Dreamweaver Mac
Visuelle Webentwicklungstools

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

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