ホームページ  >  記事  >  バックエンド開発  >  QQ ログイン統合に PHP と OAuth を使用する方法

QQ ログイン統合に PHP と OAuth を使用する方法

WBOY
WBOYオリジナル
2023-07-31 12:37:141106ブラウズ

QQ ログイン統合に PHP と OAuth を使用する方法

はじめに:
ソーシャル メディアの発展に伴い、ますます多くの Web サイトやアプリケーションが、ユーザーの迅速な登録を容易にするサードパーティのログイン機能を提供し始めています。そしてログインします。中国最大のソーシャル メディア プラットフォームの 1 つである QQ は、多くの Web サイトやアプリケーションで提供されるサードパーティのログイン サービスとしても利用されています。この記事では、QQ ログイン統合に PHP と OAuth を使用する方法の手順をコード例とともに紹介します。

ステップ 1: QQ オープン プラットフォーム開発者として登録する
QQ ログインの統合を開始する前に、QQ オープン プラットフォームの開発者として登録して、開発者の関連情報とキーを取得する必要があります。具体的な手順は次のとおりです。

  1. QQ オープン プラットフォームの公式 Web サイト (https://open.qq.com/) にアクセスします。
  2. 右上隅の「アカウント管理」をクリックし、QQ アカウントでログインします。
  3. [アプリケーション管理]をクリックし、[アプリケーションの作成]をクリックします。
  4. アプリケーション名、アプリケーションの種類、アプリケーションの説明など、アプリケーションの基本情報を入力し、アプリケーションを送信します。
  5. レビューに合格すると、QQ ログイン統合に必要な重要な情報となるアプリ ID とアプリ キーを取得します。

ステップ 2: OAuth ライブラリをインストールして構成する
PHP には、OAuth プロトコルを実装したライブラリが多数あり、これらのライブラリを QQ ログイン統合に直接使用できます。この記事では、PHPLeague/oauth2-client を例として使用して説明します。

  1. Composer を使用して OAuth ライブラリをインストールします:

    composer require league/oauth2-client
  2. config.php ファイルを作成し、関連する構成情報を入力します:

    <?php
    return [
     'qq' => [
         'clientId' => 'your-qq-app-id',
         'clientSecret' => 'your-qq-app-key',
         'redirectUri' => 'your-redirect-url'
     ]
    ];

ステップ 3: ログインおよびコールバック ページのコードを記述する

  1. 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");
  2. 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: ログイン関数をテストします

  1. ログイン ページに追加 ユーザーがクリックしてログインできる QQ ログイン リンク:

    <a href="login.php">使用QQ登录</a>
  2. MySQL データベースを作成し、users という名前のテーブルを作成して保存します。ユーザーの QQ ID。
  3. コールバック ページで、ユーザーの 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。