Maison  >  Article  >  développement back-end  >  PHP simule la connexion autorisée de la version Web de QQ

PHP simule la connexion autorisée de la version Web de QQ

little bottle
little bottleavant
2019-04-20 10:05:235736parcourir

L'éditeur de cet article vous fera apprendre à utiliser PHP pour simuler la connexion par autorisation de la version Web de QQ. Le code est joint, qui a une certaine valeur de référence. Apprenons-le ensemble !

Première étape :

Connectez-vous d'abord à la page d'accueil Internet de QQ https://connect.qq.com/ pour une authentification personnelle/d'entreprise . Le délai d'examen est d'environ une semaine.

Créer une candidature après avoir réussi la certification :

Ici nous utilisons principalement les deux paramètres de l'application : APP ID et APP Key.

Vous devez également renseigner l'adresse de rappel, qui consiste à demander à l'interface qq de vous obtenir l'adresse de rappel du paramètre de code

Étape 2 :

Une fois le travail de préparation terminé, vous pouvez accéder à l'autorisation QQ et télécharger directement le code démo :


<?php
/**
 * Project:QQ授权登陆
 * User: luokakale
 * Date: 2019/1/25
 * Time: 14:22
 */

//应用的APPID
$app_id = "";
//应用的APPKEY
$app_secret = "";
//【成功授权】后的回调地址,即此地址在腾讯的信息中有储存
$my_url = "http://XXXXXXX/login.php";

/*
 * No1:获取Authorization Code
 */

session_start();

if(empty($code))
{
    //state参数用于防止CSRF攻击,成功授权后回调时会原样带回
    $_SESSION[&#39;qq_state&#39;] = md5(uniqid(rand(), TRUE));
    //拼接URL
    $dialog_url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" . $_SESSION[&#39;qq_state&#39;];
    echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

//获取qq回调时返回的code参数
$code = $_REQUEST["code"];//存放Authorization Code

/*
 * NO.2 通过Authorization Code获取Access Token
 */
if($_REQUEST['state'] == $_SESSION['qq_state'] ) {
    //拼接URL获取access_token
    $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"."client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)."&client_secret=" . $app_secret . "&code=" . $code;
    $response = file_get_contents($token_url);
}

/*
 * NO.3:获取用户openID
 */

//把传回来的数据参数变量化
$params = array();
parse_str($response, $params);
$graph_url = "https://graph.qq.com/oauth2.0/me?access_token=".$params['access_token'];
$str = file_get_contents($graph_url);
$user = json_decode($str);//存放返回的数据 client_id ,openid

/*
 * NO.4:使用access_token来获取所接受的用户信息。
 */
$user_data_url = "https://graph.qq.com/user/get_user_info?access_token={$params['access_token']}&oauth_consumer_key={$app_id}&openid={$user->openid}&format=json";
$user_data = file_get_contents($user_data_url);//此为获取到的user信息
$user_data = json_decode($user_data, true);

Après en obtenant les informations utilisateur, vous pouvez effectuer une série de jugements logiques. C'est aussi simple que cela.

Si vous voulez devenir un expert du secteur, vous devez étudier dur et apprendre plus de tutoriels PHP. Veuillez prêter attention aux Tutoriels vidéo PHP sur le site Web PHP chinois !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer