QQ ログイン統合に PHP と OAuth を使用する方法
はじめに:
ソーシャル メディアの発展に伴い、ますます多くの Web サイトやアプリケーションが、ユーザーの迅速な登録を容易にするサードパーティのログイン機能を提供し始めています。そしてログインします。中国最大のソーシャル メディア プラットフォームの 1 つである QQ は、多くの Web サイトやアプリケーションで提供されるサードパーティのログイン サービスとしても利用されています。この記事では、QQ ログイン統合に PHP と OAuth を使用する方法の手順をコード例とともに紹介します。
ステップ 1: QQ オープン プラットフォーム開発者として登録する
QQ ログインの統合を開始する前に、QQ オープン プラットフォームの開発者として登録して、開発者の関連情報とキーを取得する必要があります。具体的な手順は次のとおりです。
ステップ 2: OAuth ライブラリをインストールして構成する
PHP には、OAuth プロトコルを実装したライブラリが多数あり、これらのライブラリを QQ ログイン統合に直接使用できます。この記事では、PHPLeague/oauth2-client を例として使用して説明します。
Composer を使用して OAuth ライブラリをインストールします:
composer require league/oauth2-client
config.php ファイルを作成し、関連する構成情報を入力します:
<?php return [ 'qq' => [ 'clientId' => 'your-qq-app-id', 'clientSecret' => 'your-qq-app-key', 'redirectUri' => 'your-redirect-url' ] ];
ステップ 3: ログインおよびコールバック ページのコードを記述する
login.php ファイルを作成し、次のコードを記述します:
<?php require 'vendor/autoload.php'; $config = include 'config.php'; $provider = new LeagueOAuth2ClientProviderGenericProvider([ 'clientId' => $config['qq']['clientId'], 'clientSecret' => $config['qq']['clientSecret'], 'redirectUri' => $config['qq']['redirectUri'], 'urlAuthorize' => 'https://graph.qq.com/oauth2.0/authorize', 'urlAccessToken' => 'https://graph.qq.com/oauth2.0/token', 'urlResourceOwnerDetails' => 'https://graph.qq.com/oauth2.0/me', ]); $authorizationUrl = $provider->getAuthorizationUrl(); $_SESSION['oauth2state'] = $provider->getState(); header("Location: $authorizationUrl");
callback.php ファイルを作成し、次のコードを記述します:
<?php session_start(); require 'vendor/autoload.php'; $config = include 'config.php'; $provider = new LeagueOAuth2ClientProviderGenericProvider([ 'clientId' => $config['qq']['clientId'], 'clientSecret' => $config['qq']['clientSecret'], 'redirectUri' => $config['qq']['redirectUri'], 'urlAuthorize' => 'https://graph.qq.com/oauth2.0/authorize', 'urlAccessToken' => 'https://graph.qq.com/oauth2.0/token', 'urlResourceOwnerDetails' => 'https://graph.qq.com/oauth2.0/me', ]); if (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) { unset($_SESSION['oauth2state']); exit('Invalid state'); } $token = $provider->getAccessToken('authorization_code', [ 'code' => $_GET['code'] ]); $ownerDetails = $provider->getResourceOwner($token); $qqId = $ownerDetails->getId(); // 将qqId保存到数据库,或进行其他操作 echo 'QQ登录成功!';
ステップ 4: ログイン関数をテストします
ログイン ページに追加 ユーザーがクリックしてログインできる QQ ログイン リンク:
<a href="login.php">使用QQ登录</a>
users
という名前のテーブルを作成して保存します。ユーザーの QQ ID。 コールバック ページで、ユーザーの QQ ID をデータベースに保存します:
// 将qqId保存到数据库中 $conn = new mysqli('localhost', 'your-username', 'your-password', 'your-database'); $qqId = $ownerDetails->getId(); $sql = "INSERT INTO users (qq_id) VALUES ('$qqId')"; $conn->query($sql);
上記の手順により、QQ ログインの統合が正常に実装されました。ユーザーがログイン リンクをクリックすると、ページは QQ ログイン インターフェイスにジャンプします。ユーザーが認証を完了すると、指定したコールバック ページに戻り、ユーザーの QQ ID を取得してデータベースに保存できます。 。
概要:
この記事では、QQ ログイン統合に PHP と OAuth を使用する方法の手順を紹介し、コード例も示します。 QQ ログインの統合により、ユーザーの迅速な登録とログインの機能を簡単に実現し、ユーザー エクスペリエンスを向上させることができます。この記事がお役に立てば幸いです!
以上がQQ ログイン統合に PHP と OAuth を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。