サードパーティ ログインに Hyperf フレームワークを使用する方法
はじめに:
インターネットの発展に伴い、サードパーティ ログインが標準になりました。豊富なWebサイトやアプリの機能を搭載。サードパーティのログインを通じて、ユーザーはサードパーティのプラットフォーム上の既存のアカウント情報を使用して他の Web サイトやアプリケーションにログインできるため、面倒な登録プロセスが回避され、ユーザー エクスペリエンスが大幅に向上します。この記事では、Hyperf フレームワークを使用してサードパーティのログイン機能を実装する方法を、具体的なコード例とともに紹介します。
1. 準備作業
サードパーティ ログインの実装を開始する前に、次の必要な作業を準備する必要があります:
2. 依存関係パッケージのインストール
プロジェクト ルート ディレクトリで次のコマンドを実行して、Hyperf コミュニティが提供するサードパーティのログイン拡張パッケージをインストールします。
composer require hyperf/socialite
3. 構成情報の追加socialite.php
構成ファイルを Hyperf プロジェクトのルート ディレクトリの config/autoload/
ディレクトリに追加し、次のコンテンツ:
<?php return [ 'default' => [ 'wechat' => [ 'client_id' => env('WECHAT_CLIENT_ID', ''), 'client_secret' => env('WECHAT_CLIENT_SECRET', ''), 'redirect' => env('WECHAT_REDIRECT', ''), ], 'qq' => [ 'client_id' => env('QQ_CLIENT_ID', ''), 'client_secret' => env('QQ_CLIENT_SECRET', ''), 'redirect' => env('QQ_REDIRECT', ''), ], // 更多第三方平台的配置信息... ], ];
WECHAT_CLIENT_ID
、WECHAT_CLIENT_SECRET
、WECHAT_REDIRECT
、QQ_CLIENT_ID
、QQ_CLIENT_SECRET#上記の設定ファイル ##、
QQ_REDIRECT などのフィールドは、対応するプラットフォームで開発者が適用した情報に置き換える必要があります。
Hyperf プロジェクトにコントローラー (
LoginController など) を作成し、次のメソッドを追加します:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; use PsrHttpMessageResponseInterface; /** * @Controller */ class LoginController { /** * @RequestMapping(path="/login/{platform}", methods="GET") */ public function redirectToThirdParty(string $platform): ResponseInterface { return context() ->getContainer() ->get(HyperfSocialiteSocialiteManager::class) ->driver($platform) ->redirect(); } /** * @RequestMapping(path="/login/{platform}/callback", methods="GET") */ public function handleThirdPartyCallback(string $platform): ResponseInterface { $user = context() ->getContainer() ->get(HyperfSocialiteSocialiteManager::class) ->driver($platform) ->user(); // 在此处处理用户登录逻辑,例如创建用户、更新用户信息等 return $this->generateResponse(); } private function generateResponse(): ResponseInterface { // 生成登录成功后的响应 return $response; } }
ページにサードパーティのログイン入り口を追加します。例:
<a href="/login/wechat">使用微信登录</a> <a href="/login/qq">使用QQ登录</a>
ユーザーがサードパーティ プラットフォームでログイン認証を完了すると、アプリケーションに戻り、コールバック メソッド
handleThirdPartyCallback を呼び出します。このメソッドでは、
user() メソッドを通じてサードパーティ プラットフォーム上のユーザーの基本情報 (アバター、ニックネームなど) を取得できます。ここでは、サードパーティのプラットフォームから返された情報に基づいて、ユーザーがアプリケーションに登録したかどうかを判断できます。登録していない場合は、ここでユーザーの自動登録を完了できます。
ログインに成功した後、JWT トークンの生成や Cookie の設定など、ビジネス ニーズに応じてユーザーのログイン ステータスを生成し、ユーザーに応答を返すことができます。
Hyperf フレームワークとコミュニティが提供する
hyperf/socialite 拡張パッケージを使用することで、サードパーティのログイン機能を迅速に実装できます。この記事では、依存関係パッケージの導入、構成情報の追加、コントローラーの作成などの手順により、WeChat および QQ を介したユーザー ログイン機能を実装します。もちろん、実際のプロジェクトでは、ニーズに応じて Weibo や GitHub などのサードパーティのログイン方法を追加することもできます。この記事が、Hyperf でサードパーティのログイン機能を実装する際の参考になれば幸いです。
以上がサードパーティのログインに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。