Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie verwende ich Laravel Socialite, um die Github-Anmeldung zu implementieren?

Laravel-Entwicklung: Wie verwende ich Laravel Socialite, um die Github-Anmeldung zu implementieren?

PHPz
PHPzOriginal
2023-06-13 14:46:48983Durchsuche

Im heutigen Internetzeitalter ist die Benutzeranmeldung zu etwas geworden, das die meisten Webanwendungen berücksichtigen müssen. Dies bedeutet auch, dass Webanwendungen den Benutzern optional mehrere Anmeldemethoden bieten müssen, um die Schwierigkeiten bei der Benutzeranmeldung zu verringern und die Benutzererfahrung zu optimieren.

Als eines der derzeit beliebtesten PHP-Frameworks bietet Laravel einige sehr praktische Möglichkeiten zur Implementierung der Benutzerauthentifizierung. Laravel Socialite ist eine sehr leistungsstarke Benutzerauthentifizierungslösung, die es Anwendungen ermöglicht, Plattformen von Drittanbietern als Authentifizierungsanbieter zu verwenden.

In diesem Artikel stellen wir vor, wie Sie Laravel Socialite verwenden, um die Github-Anmeldefunktion zu implementieren. Gehen wir Schritt für Schritt vor, um dieses Ziel zu erreichen.

Schritt 1: Erstellen Sie eine Github-Anwendung

Bevor Sie mit diesem Artikel beginnen, müssen Sie sich zunächst registrieren, ein Github-Konto erstellen und eine OAuth-Anwendung in Github erstellen. Der Prozess zum Erstellen einer Anwendung ist relativ einfach. Befolgen Sie einfach die folgenden Schritte:

  1. Melden Sie sich bei Ihrem Github-Konto an und erstellen Sie eine neue OAuth-App in den Github-Einstellungen –> In der App im ersten Teil Name, Homepage-URL und Rückruf-URL
  2. Die Rückruf-URL ist die Website-Adresse, die nach erfolgreicher Anmeldung zurückgegeben wird. Sie muss im Hintergrund der Laravel-Website definiert werden

    Die client_id und client_secret der Github-Anwendung werden sein wird auf der Seite angezeigt, die nach dem Absenden des Formulars zurückgegeben wird. client_id wird verwendet, um den Github-Treiber von Laravel Socialite zu konfigurieren.

  3. Schritt 2: Laravel Socialite installieren
Die Installation von Laravel Socialite kann einfach über Composer erfolgen. Geben Sie einfach die folgenden Anweisungen in die Befehlszeile im Projektverzeichnis ein:

composer require laravel/socialite

Schritt 3: Dienstanbieter und Fassadenreferenz konfigurieren

Öffnen Sie die Konfigurationsdatei config/app.php, suchen Sie das Provider-Array und das Aliase-Array und fügen Sie Socialite hinzu Service-Provider- und Facade-Referenzen werden den entsprechenden Arrays hinzugefügt.

'providers' => [
    // Other service providers...

    LaravelSocialiteSocialiteServiceProvider::class,
],

'aliases' => [
    // Other aliases...

    'Socialite' => LaravelSocialiteFacadesSocialite::class,
],

Schritt 4: Github-Treiberkonfiguration definieren

Fügen Sie die folgende Konfiguration in der Konfigurationsdatei config/services.php hinzu:

'github' => [
    'client_id' => env('GITHUB_CLIENT_ID'),
    'client_secret' => env('GITHUB_CLIENT_SECRET'),
    'redirect' => env('GITHUB_REDIRECT'),
],

Schritt 5: Github-Anmeldelink definieren

Öffnen Sie die Blade-Vorlagendatei der Anmeldeseite und fügen Sie die hinzu Folgender Code:

<a href="{{ url('auth/github') }}" class="btn btn-github"><i class="fa fa-github"></i> Github 登录</a>

Dadurch wird ein Link erstellt, der durch Zugriff auf /auth/github zur Github-Anmeldeseite springt.

Schritt 6: Definieren Sie die Github-Rückruffunktion.

Öffnen Sie die Rückruf-URL-Seite, als wir uns in Github registriert haben, rufen Sie den Codeparameter im Link ab und fügen Sie den folgenden Code in die Laravel-Route ein:

Route::get('auth/github/callback', function () {
    $user = Socialite::driver('github')->user();

    // 如果在本地没有找到该用户,则创建新用户
    $existingUser = User::where('email', $user->getEmail())->first();
    if ($existingUser) {
        auth()->login($existingUser, true);
    } else {
        $newUser                  = new User;
        $newUser->name            = $user->getNickname();
        $newUser->email           = $user->getEmail();
        $newUser->github_id       = $user->getId();
        $newUser->avatar          = $user->getAvatar();
        $newUser->provider        = 'github';
        $newUser->save();
        auth()->login($newUser, true);
    }

    return redirect()->to('/home');
});

Hier sollte beachtet werden Wir müssen github_id in der Datenbank speichern, um bei Bedarf die Anmeldung zu überprüfen, und außerdem den Spitznamen und den Avatar des Benutzers speichern, um die Anzeige zu erleichtern.

Schritt 7: Erstellen Sie die .env-Datei

Öffnen Sie die .env-Datei im Stammverzeichnis des Projekts und fügen Sie die folgende Github-bezogene Konfiguration hinzu:

GITHUB_CLIENT_ID=your-github-client-id-here
GITHUB_CLIENT_SECRET=your-github-client-secret-here
GITHUB_REDIRECT=http://localhost:8000/auth/github/callback

In der obigen Konfiguration müssen Sie

durch die erhaltene client_id und client_secret ersetzen von Github. Der Wert von GITHUB_REDIRECT sollte der Umleitungs-URI-Parameter sein, wenn die Anwendung auf Github registriert wird.

Okay, jetzt können Sie versuchen, sich mit Github anzumelden, um Ihre Anwendung zu testen. Wenn Sie /auth/github besuchen, sollten Sie zur Anmeldeseite von Github weitergeleitet werden. Nach der Eingabe Ihres Github-Kontos sollten Sie zurück zu der Adresse weitergeleitet werden, die Sie über den Callback-URI angegeben haben. your-github-client-id-hereyour-github-client-secret-here

Die Verwendung von Laravel Socialite ist in der Tat eine schnelle und einfache Möglichkeit zur Authentifizierung und unterstützt auch viele andere Anbieter von Kontoauthentifizierungsdiensten wie Facebook, Twitter, Google usw. Komfortable und effiziente Anmeldemethoden von Drittanbietern können die Benutzererfahrung erheblich verbessern, und das Hinzufügen mehrerer Anmeldemethoden zu Webanwendungen ist nach und nach zu einer Notwendigkeit geworden. Im Vergleich zur unabhängigen Implementierung eines Authentifizierungssystems kann die Verwendung von Laravel Socialite auf bestehende hervorragende Authentifizierungsdienstanbieter zurückgreifen, um die Implementierung von Identitätsauthentifizierungslösungen zu vereinfachen.

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verwende ich Laravel Socialite, um die Github-Anmeldung zu implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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