Was ist Laravel Socialite
Laravel Socialite ist ein offizielles Paket, mit dem Sie Social Logins auf Basis von OAuth 2.0 unkompliziert implementieren können. Es unterstützt zahlreiche gängige Provider wie GitHub, Google, Facebook, X (Twitter), LinkedIn und mehr; komplexe OAuth-Abläufe lassen sich damit in wenigen Codezeilen umsetzen. Folgende Provider werden von Haus aus unterstützt:Ablauf eines Social Logins
Installation
Fügen Sie das Paket mit Composer hinzu:Prüfen Sie beim Upgrade auf eine neue Major-Version von Socialite stets den Upgrade Guide.
Konfiguration
config/services.php
Fügen Sie Client-ID, Client-Secret und Callback-URL des jeweiligen Providers inconfig/services.php ein.
Wenn Sie in der Option
redirect einen relativen Pfad angeben, wird dieser automatisch zu einer vollständigen URL aufgelöst..env
Verwalten Sie die Anmeldedaten über Umgebungsvariablen. Am Beispiel von GitHub:Authentifizierungsablauf
Routing
Für die OAuth-Authentifizierung sind zwei Routen erforderlich: eine für den Redirect und eine für den Callback.Benutzer speichern und anmelden
Im Callback rufen Sie die Benutzerinformationen ab, speichern sie in der Datenbank und melden den Benutzer dann an.Benutzerinformationen abrufen
Vom Objekt, das die Methodeuser() zurückgibt, können Sie über die folgenden Eigenschaften und Methoden auf die Benutzerdaten zugreifen:
Benutzer über ein Access Token abrufen
Wenn Sie einen Benutzer über ein bereits vorhandenes Access Token abrufen möchten, verwenden SieuserFromToken():
Stateless-Modus
In APIs, die keine Cookie-basierte Session verwenden, können Sie die Session-State-Prüfung mit der Methodestateless() deaktivieren:
Datenbank-Anbindung
Migration
Fügen Sie der Tabelleusers Spalten für den Social Login hinzu:
Mehrere Provider über eine provider-Spalte
Wenn Sie mehrere Provider gemeinsam verwalten möchten, ist ein Aufbau mit zwei Spalten – provider und provider_id – üblich.
Verknüpfung mit bestehenden Benutzern
Wenn Sie das Konto mit einem bestehenden Benutzer verknüpfen möchten, der dieselbe E-Mail-Adresse verwendet, suchen Sie nach der E-Mail-Adresse und aktualisieren dann die Spalten.Scopes und Optionen
Scopes hinzufügen
Mit der Methodescopes() können Sie zusätzliche Scopes angeben:
setScopes() überschreibt sämtliche bereits gesetzten Scopes:
Optionale Parameter
Mit der Methodewith() können Sie zusätzliche Parameter in den Redirect-Request aufnehmen:
Slack-Bot-Token
Um einen Slack-Bot-Token zu erzeugen, verwenden SieasBotUser():
Testing
Socialite bietet Mock-Funktionen für Tests. So können Sie den OAuth-Ablauf testen, ohne echte Anfragen an die Provider zu stellen.Redirect testen
Callback testen
Übergeben Sie der Methodefake() eine User-Instanz, um die vom Provider zurückgegebenen Benutzerinformationen zu mocken. Mit User::fake() erzeugen Sie einen Fake-User.
fake() überschreiben:
Laravel\Socialite\One\User.
Eigene Provider erstellen
Falls Sie einen anderen als die eingebauten Provider verwenden möchten, ist die offizielle und empfohlene Vorgehensweise, mitSocialite::extend() einen eigenen Driver zu registrieren. Da der SocialiteManager von Illuminate\Support\Manager erbt, lässt er sich nach demselben Muster wie andere Laravel-Driver-Systeme erweitern.
Näheres zum Manager-Pattern und zum Mechanismus von
extend() finden Sie unter Erläuterung der Manager-Klasse.1. Provider-Klasse erstellen
Erweitern SieLaravel\Socialite\Two\AbstractProvider und implementieren Sie die vier abstrakten Methoden.
2. Im Service-Provider registrieren
Registrieren Sie den Driver in derboot()-Methode des AppServiceProvider über Socialite::extend().
3. Konfiguration hinzufügen
4. Wie üblich verwenden
Nach der Registrierung nutzen Sie den Driver mit exakt derselben API wie die eingebauten Provider.Verwandte Pakete
Nachfolgend Socialite-Erweiterungen, die vom Betreiber dieser Website veröffentlicht wurden. Alle sind auf offizielle Weise überSocialite::extend() implementiert und können nach einem Eintrag in config/services.php direkt verwendet werden.
LINE
LINE SDK für Laravel. Neben dem OAuth-Login über Socialite ist auch die Messaging API integriert.
Bluesky
Anbindung an das AT Protocol (Bluesky). Unterstützt OAuth-Authentifizierung und das Absetzen von Posts.
Discord
OAuth2-Login mit Discord.
Threads
Anbindung an Meta Threads. Unterstützt OAuth-Authentifizierung und die Posting-API.
Amazon
OAuth-Login über Login with Amazon.
Mastodon
OAuth-Login gegen Mastodon-Instanzen.
WordPress
OAuth-Login für WordPress.com und selbst gehostete WordPress-Instanzen.