ホームページ > 記事 > PHPフレームワーク > Laravelを使用してサードパーティログイン機能を実装する方法
近年、インターネット技術の継続的な発展に伴い、Web サイトやアプリケーションのセキュリティとユーザー エクスペリエンスに対する要求がますます高まっています。ユーザーの登録とログインを容易にするために、サードパーティアカウントのログインは、Web サイトやアプリケーションで一般的に使用される機能の 1 つになっています。人気の PHP フレームワークとして、Laravel は便利なソーシャル ログイン認証機能を提供するため、サードパーティのログイン機能を実装するのに特に便利です。この記事では、Laravel を使用してサードパーティのログイン機能を実装する方法を紹介し、読者の参考のためにいくつかの実装コードを提供します。
1. サービスプロバイダー情報の設定
Laravel では、ソーシャル ログイン認証パッケージ socialite
を使用してサードパーティ ログイン機能を実装できます。 socialite
は、Facebook、Google、Twitter、WeChat などのさまざまな認定サービス プロバイダーをサポートしています。したがって、socialite
を使用してサードパーティ ログイン機能を実装する前に、サービス プロバイダー情報を構成する必要があります。
GitHub を例にとると、OAuth アプリケーションを作成して認可することで、クライアント ID とクライアント キーを取得できます。具体的な取得方法は以下の通りです。
この情報を使用して、/config/services.php
という名前の Laravel 構成ファイルを作成し、次の内容をそれに追加できます:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => 'http://localhost:8000/login/github/callback', ],
このうち、github
は利用したいサービスプロバイダーの名前、client_id
と client_secret
は OAuth アプリケーションの申請時に取得した顧客です。 ID とクライアント シークレット。redirect
は OAuth コールバック URL で、アプリケーションの作成時に入力した認可コールバック URL です。ここでは、localhost:8000/login/github/callback に設定します。後でこのルートをルーティング ファイルに作成します。
2. ルートの作成
次に、GitHub 経由でログインする機能を実装するために、Laravel アプリケーションのルーティング ファイルにルートを作成する必要があります。ここでは、Laravel の Route
クラスを使用してルートを作成できます。
最初のステップは、ユーザーを GitHub ログイン ページにリダイレクトする承認リダイレクト ルートを作成することです。ルーティング ファイルに次のコードを追加します。
Route::get('login/github', function () { return Socialite::driver('github')->redirect(); });
その中で、Socialite::driver('github')
は、socialite# の
driver を呼び出します。 ## authorization package GitHub サービスプロバイダーのインスタンスを取得するメソッド。
redirect メソッドは OAuth 認証ジャンプを実装し、ユーザーを GitHub の認証および認可ページにリダイレクトします。
Route::get('login/github/callback', function () { $user = Socialite::driver('github')->user(); // 处理用户信息 });その中で、
Socialite::driver('github') は、
socialite# の driver
を呼び出します。 ## authorization package GitHub サービスプロバイダーのインスタンスを取得するメソッド。 user
メソッドは、OAuth 認証を通じてユーザー情報を取得するプロセスを実装します。GitHub サービス プロバイダーからユーザーの情報を取得し、情報は $user## の形式で返されます。 # 変数。
$user
3. パブリック メソッドを作成する
app/Http/Controllers/Auth/LoginController.php
に を作成できます。他のメソッドを呼び出すためのコントローラー GitHub メソッド。
このメソッドでは、まず
Socialite::driver('github')->redirect()
GitHubCallback メソッドでユーザー情報を処理できます。
以下は基本的なサンプルコードです:
<?php namespace AppHttpControllersAuth; use AppHttpControllersController; use Socialite; class LoginController extends Controller { /** * 重定向到GitHub登录页面 * * @return Response */ public function GitHub() { return Socialite::driver('github')->redirect(); } /** * 从GitHub获取用户信息 * * @return Response */ public function GitHubCallback() { $user = Socialite::driver('github')->user(); dd($user); } }4. 拡張パッケージを使用する上記の方法が面倒だと感じる場合は、ソーシャル ログイン認証を使用できます。拡張パッケージ
laravel/socialite
、この拡張パッケージには主要なサービスプロバイダーがカプセル化されており、認可されたサービスプロバイダーを構築するための対応するコマンドラインツールが提供されています。インストール
ターミナルでcomposerを使用して、
composer require laravel/socialite
サービスプロバイダー情報の構成
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => '/auth/github/callback', ],
認可ルートの作成
Route::get('/auth/github', 'AuthLoginController@GitHub');
在routes/web.php
路由文件中,创建一个授权回调路由:
Route::get('/auth/github/callback', 'AuthLoginController@GitHubCallback');
在app/Http/Controllers/Auth
目录下,创建一个名为LoginController.php
的控制器。控制器中添加方法GitHub
和GitHubCallback
实现授权和回调过程,具体代码如下:
use Socialite; class LoginController extends Controller { public function GitHub() { return Socialite::driver('github')->redirect(); } public function GitHubCallback() { $user = Socialite::driver('github')->user(); dd($user); } }
至此,我们已经成功使用laravel/socialite
扩展包实现了第三方登录的功能。
总结:
本文介绍了如何使用Laravel框架的社交化登录授权包socialite
,在实现第三方登录功能方面变得尤为便利。通过配置服务商信息、创建路由以及使用扩展包等方法,我们可以轻松地实现通过GitHub登录的功能。希望这篇文章能够对各位开发人员有所帮助。
以上がLaravelを使用してサードパーティログイン機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。