PHP-Entwicklung: OAuth-Anmeldung mit Laravel Socialite

PHPz
Freigeben: 2023-06-14 17:14:02
Original
820 Leute haben es durchsucht

Mit der Popularität sozialer Medien haben viele Websites damit begonnen, ihren Benutzern Social-Login-Funktionen anzubieten. Social Login ermöglicht es Benutzern, sich mit ihren Social-Media-Konten (wie Facebook, Twitter oder Google+) auf einer Website anzumelden, ohne ein neues Konto erstellen zu müssen. Dies ist für Benutzer sehr praktisch und reduziert den Aufwand und die Zeitverschwendung beim Registrierungsprozess.

Um die Social-Login-Funktion zu implementieren, verwenden viele Websites das OAuth-Authentifizierungsprotokoll, einen Autorisierungsstandard für das HTTP-Protokoll. Mit OAuth können Benutzer einer Client-Anwendung den Zugriff auf ihre privaten Ressourcen (wie Profile, Bilder usw.) autorisieren, die auf einer anderen Site gespeichert sind, ohne der Client-Anwendung ihren Benutzernamen und ihr Passwort mitzuteilen. Wenn Ihre Website in PHP geschrieben ist, ist Laravel Socialite eine sehr gute Wahl für die Implementierung der Social-Login-Funktionalität. In diesem Artikel erfahren Sie, wie Sie Laravel Socialite zur Integration mit Facebook verwenden, um die OAuth-Anmeldung zu implementieren.

  1. Erstellen Sie eine Facebook-App

Zuerst müssen Sie sich bei Facebook Developer registrieren und eine App erstellen. Bitte beachten Sie, dass Sie sich mit Ihrem Facebook-Konto anmelden müssen. Sobald Sie Ihre Anwendung erstellt haben, erhalten Sie die ID und den geheimen Schlüssel Ihrer Anwendung. Diese Informationen werden später für die Konfiguration von Laravel Socialite verwendet.

  1. Installieren Sie Laravel Socialite

Um Laravel Socialite zu verwenden, müssen Sie es zu Ihrer Composer.json-Datei hinzufügen und den Composer-Installationsbefehl verwenden, um es zu installieren. Oder verwenden Sie einfach „composer require overtrue/socialite“ direkt.

  1. Konfigurieren Sie Laravel Socialite

In der Datei config/services.php müssen Sie die folgenden Optionen für Facebook hinzufügen:

'facebook' => [
    'client_id' => env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect' => 'http://localhost:8000/callback/facebook',
],
Nach dem Login kopieren

Ändern Sie FACEBOOK_CLIENT_ID und FACEBOOK_CLIENT_SECRET in die Anwendungs-ID und das Geheimnis, die Sie in Facebook Developer erstellt haben. Außerdem wird hier die Weiterleitungsadresse nach erfolgreicher Autorisierung angegeben.

  1. Erstellen Sie eine Facebook-Anmeldeseite.

Als Nächstes müssen Sie eine Facebook-Anmeldeseite erstellen. Diese Seite sollte einen Link enthalten, der zur Facebook-Autorisierungsseite führt und eine Benutzerautorisierung anfordert. Der Link kann erstellt werden über:

<a href="{{ url('login/facebook') }}">使用 Facebook 登录</a>
Nach dem Login kopieren

Dies wird verwendet, um dem Benutzer einen Klick-Button anzuzeigen, mit dem er sich über Facebook anmelden kann.

  1. Schreiben Sie die Rückrufroute

Sobald Facebook die OAuth-Autorisierung abgeschlossen hat, wird der Benutzer zurück zu Ihrer Website weitergeleitet und fügt einen Codeparameter in die Abfragezeichenfolge ein. Laravel Socialite benötigt diesen Codeparameter, um das Zugriffstoken zu erhalten. Dazu müssen Sie eine Callback-Route für Laravel Socialite erstellen:

Route::get('callback/facebook', 'AuthLoginController@handleFacebookCallback');
Nach dem Login kopieren
  1. Schreiben Sie einen Callback-Controller

Wenn Facebook den Benutzer zurück zu Ihrer App umleitet, müssen Sie den Autorisierungs-Callback verwalten. Der Autorisierungsrückruf gewährt Ihnen das Zugriffstoken. Mit Laravel Socialite können Sie den folgenden Code in Ihrem Controller verwenden, um das Facebook-Token und die Authentifizierungsdaten des Benutzers abzurufen:

public function handleFacebookCallback()
{
    $socialUser = Socialite::driver('facebook')->user();
    dd($socialUser);
}
Nach dem Login kopieren

Laravel Socialite übernimmt den Token-Austausch für Sie, sodass Sie sich keine Sorgen machen müssen. $socialUser ist ein Objekt, das Authentifizierungsdaten über den Benutzer enthält.

  1. Benutzer integrieren

Der letzte Schritt besteht darin, Benutzer zu integrieren und ihre Konten in Ihrer App zu erstellen oder zu aktualisieren, damit sie sich über Facebook auf Ihrer Website anmelden können.

Wenn Sie im obigen Beispiel $user mit dd($socialUser) drucken, werden viele Daten mit Details über den Benutzer angezeigt. Wenn Sie mehr über diese Daten erfahren möchten, können Sie diese Demo in Ihrer Konsole ausprobieren.

Mit diesen Daten können Sie Ihre Datenbank überprüfen und feststellen, ob ein Benutzer sein Konto mit Ihrer Website verknüpft hat. Wenn nicht, können Sie ein Konto erstellen. Wenn es bereits vorhanden ist, können Sie das Konto aktualisieren.

Jetzt ist Ihre Website für die OAuth-Anmeldung über die Facebook-Integration bereit.

Zusammenfassung

Laravel Socialite macht die OAuth-Anmeldung sehr einfach. In nur wenigen Schritten können Sie eine Funktion implementieren, mit der sich Benutzer mithilfe der Facebook-Authentifizierung anmelden können. Dies ist eine sehr praktische Funktion, da Benutzer dadurch den Registrierungsprozess vermeiden können und Sie Ihre Benutzerbasis einfacher erweitern können.

Das obige ist der detaillierte Inhalt vonPHP-Entwicklung: OAuth-Anmeldung mit Laravel Socialite. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!