今日のインターネット時代では、ほとんどの Web アプリケーションでユーザー ログインを考慮する必要があります。これは、ユーザーのログインの難しさを軽減し、ユーザー エクスペリエンスを最適化するために、Web アプリケーションがオプションの複数のログイン方法をユーザーに提供する必要があることも意味します。
現在最も人気のある PHP フレームワークの 1 つとして、Laravel はユーザー認証を実装するための非常に便利な方法をいくつか提供しています。Laravel Socialite は、アプリケーションが認証プロバイダーとして機能するサードパーティのプラットフォームを使用できるようにする非常に強力なユーザー認証ソリューションです。
この記事では、Laravel Socialiteを使ってGithubログイン機能を実装する方法を紹介します。この目標を達成するために、段階的にアプローチしてみましょう。
この記事を始める前に、まず Github アカウントを登録して作成し、Github で OAuth アプリケーションを作成する必要があります。アプリケーションを作成するプロセスは比較的簡単で、次の手順に従うだけです:
最初の部分でアプリ名、ホームページURL、コールバックURLを入力します
##コールバックURLはログイン成功後に返されるWebサイトアドレスであり、Laravelで定義する必要があります。ウェブサイトの背景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_id をデータベースに保存する必要があることと、簡単に表示できるようにユーザーのニックネームとアバターも保存する必要があることです。
ステップ 7: .env ファイルを作成する
GITHUB_CLIENT_ID=your-github-client-id-here GITHUB_CLIENT_SECRET=your-github-client-secret-here GITHUB_REDIRECT=http://localhost:8000/auth/github/callback
上記の設定では、 ##your-github-client-id-here
とyour-github-client-secret-here を、Github から取得した client_id と client_secret に # 置き換える必要があります。 GITHUB_REDIRECT の値は、Github にアプリケーションを登録するときのリダイレクト URI パラメーターである必要があります。
さて、Github にログインしてアプリケーションをテストしてみましょう。 /auth/github にアクセスすると、Github のログイン ページにリダイレクトされるはずです。 Github アカウントを入力すると、コールバック URI 経由で指定したアドレスにリダイレクトされるはずです。
以上がLaravel 開発: Laravel Socialite を使用して Github ログインを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。