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.
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:
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.
composer require laravel/socialite
'providers' => [ // Other service providers... LaravelSocialiteSocialiteServiceProvider::class, ], 'aliases' => [ // Other aliases... 'Socialite' => LaravelSocialiteFacadesSocialite::class, ],
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => env('GITHUB_REDIRECT'), ],
<a href="{{ url('auth/github') }}" class="btn btn-github"><i class="fa fa-github"></i> Github 登录</a>
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'); });
GITHUB_CLIENT_ID=your-github-client-id-here GITHUB_CLIENT_SECRET=your-github-client-secret-here GITHUB_REDIRECT=http://localhost:8000/auth/github/callback
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-here
和 your-github-client-secret-here
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!