Maison  >  Article  >  développement back-end  >  Comment utiliser PHP et OAuth pour l'intégration de la connexion QQ

Comment utiliser PHP et OAuth pour l'intégration de la connexion QQ

WBOY
WBOYoriginal
2023-07-31 12:37:141107parcourir

Comment utiliser PHP et OAuth pour l'intégration de la connexion QQ

Introduction :
Avec le développement des médias sociaux, de plus en plus de sites Web et d'applications ont commencé à fournir des fonctions de connexion tierces pour permettre aux utilisateurs de s'inscrire et de se connecter rapidement. En tant que l'une des plus grandes plateformes de médias sociaux de Chine, QQ est également devenue un service de connexion tiers fourni par de nombreux sites Web et applications. Cet article présentera les étapes à suivre pour utiliser PHP et OAuth pour l'intégration de la connexion QQ, avec des exemples de code.

Étape 1 : S'inscrire en tant que développeur de la plateforme ouverte QQ
Avant de commencer à intégrer la connexion QQ, nous devons nous inscrire en tant que développeur de la plateforme ouverte QQ pour obtenir les informations et les clés pertinentes du développeur. Les étapes spécifiques sont les suivantes :

  1. Visitez le site officiel de QQ Open Platform (https://open.qq.com/).
  2. Cliquez sur « Gestion du compte » dans le coin supérieur droit et connectez-vous via votre compte QQ.
  3. Cliquez sur « Gestion des applications » puis sur « Créer une application ».
  4. Remplissez les informations de base de la candidature, y compris le nom de la candidature, le type de candidature, la description de la candidature, etc., et soumettez la candidature.
  5. Après avoir réussi l'examen, vous obtiendrez un identifiant d'application et une clé d'application, qui seront les informations clés dont nous avons besoin pour l'intégration de la connexion QQ.

Étape 2 : Installer et configurer la bibliothèque OAuth
En PHP, il existe de nombreuses bibliothèques qui ont implémenté le protocole OAuth. Nous pouvons directement utiliser ces bibliothèques pour l'intégration de la connexion QQ. Cet article utilisera PHPLeague/oauth2-client comme exemple pour illustrer.

  1. Utilisez Composer pour installer la bibliothèque OAuth :

    composer require league/oauth2-client
  2. Créez un fichier config.php et remplissez les informations de configuration pertinentes :

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

Étape 3 : Écrivez le code de la page de connexion et de rappel

  1. Créez un fichier login.php et écrivez le code suivant :

    <?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. Créez un fichier callback.php et écrivez le code suivant :

    <?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登录成功!';

Étape 4 : Testez la fonction de connexion

  1. Ajoutez une connexion QQ lien sur la page de connexion, Autoriser les utilisateurs à cliquer pour se connecter :

    <a href="login.php">使用QQ登录</a>
  2. Créez une base de données MySQL et créez une table nommée users pour enregistrer l'ID QQ de l'utilisateur.
  3. Dans la page de rappel, enregistrez l'ID QQ de l'utilisateur dans la base de données :

    // 将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);

Grâce aux étapes ci-dessus, nous avons implémenté avec succès l'intégration de la connexion QQ. Une fois que l'utilisateur a cliqué sur le lien de connexion, la page passera à l'interface de connexion QQ. Une fois que l'utilisateur aura terminé l'autorisation, il reviendra à la page de rappel que nous avons spécifiée, et nous pourrons obtenir l'ID QQ de l'utilisateur et l'enregistrer dans la base de données. .

Résumé :
Cet article présente les étapes à suivre pour utiliser PHP et OAuth pour l'intégration de la connexion QQ et est accompagné d'exemples de code. Grâce à l'intégration de la connexion QQ, nous pouvons facilement réaliser la fonction d'enregistrement et de connexion rapides pour les utilisateurs et améliorer l'expérience utilisateur. J'espère que cet article vous aidera !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn