Maison  >  Article  >  développement back-end  >  Comment implémenter la fonction de connexion WeChat en php

Comment implémenter la fonction de connexion WeChat en php

PHPz
PHPzoriginal
2023-04-24 10:53:121566parcourir

PHP, en tant que langage de développement Web populaire, fournit aux développeurs de nombreux outils et bibliothèques puissants, facilitant ainsi l'intégration avec d'autres plates-formes. De nos jours, de nombreux sites Web ont adopté la fonction de connexion WeChat, permettant aux utilisateurs de se connecter facilement à l'aide de leur compte WeChat. Alors, comment implémenter cette fonction en PHP ? Cet article vous présentera quelques méthodes de mise en œuvre.

  1. Obtenir le compte et la clé du développeur WeChat

Avant de commencer, nous devons d'abord obtenir le compte et la clé du développeur WeChat. Connectez-vous d'abord à la plateforme publique WeChat, puis sous l'onglet « Développement », cliquez sur le bouton « Autorisation de la page Web pour obtenir des informations utilisateur de base » de « Autorisations d'interface », et enfin complétez l'autorisation selon les invites pour obtenir le compte développeur. et clé.

  1. Créer le lien de connexion

Une fois que nous avons le compte et la clé du développeur WeChat, nous pouvons utiliser PHP pour créer le lien de connexion. Lors de la création d'un lien, nous devons utiliser le protocole OAuth2.0 fourni par WeChat pour demander l'autorisation de l'utilisateur à WeChat et obtenir l'openID de l'utilisateur (l'identifiant unique de l'utilisateur dans le compte officiel).

Par exemple, voici un exemple de lien :

https://open.weixin.qq.com/connect/oauth2/authorize?
appid=APPID&
redirect_uri=REDIRECT_URI&
response_type=code&
scope=snsapi_userinfo&
state=STATE#wechat_redirect

Parmi eux, remplacez APPID et REDIRECT_URI par notre compte de développeur WeChat et notre URL.

  1. Obtenir des informations sur l'utilisateur

Après avoir obtenu l'autorisation de l'utilisateur via l'étape 2, nous pouvons obtenir des informations sur l'utilisateur en appelant l'API fournie par WeChat. Plus précisément, nous pouvons utiliser le code suivant pour obtenir des informations sur l'utilisateur du serveur WeChat :

// 获取access_token
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appId."&secret=".$appSecret."&code=".$code."&grant_type=authorization_code";
$response = file_get_contents($url);
$result = json_decode($response, true);

// 获取用户信息
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$result['access_token']."&openid=".$result['openid']."&lang=zh_CN";
$response = file_get_contents($url);
$userInfo = json_decode($response, true);

Dans ce code, nous obtenons d'abord le access_token et l'openID de l'utilisateur en appelant l'interface "access_token" fournie par WeChat. Ensuite, nous appelons à nouveau l'interface « userinfo » fournie par WeChat et transmettons les paramètres access_token et openID pour obtenir les informations détaillées de l'utilisateur.

  1. Réalisez la connexion WeChat

Enfin, nous pouvons demander si l'utilisateur existe dans notre base de données en fonction des informations utilisateur obtenues. S'il s'agit d'un nouvel utilisateur, ajoutez-le à notre base de données et configurez une session utilisateur afin que les informations utilisateur puissent être enregistrées et qu'une connexion continue puisse être obtenue lors des futures visites des utilisateurs.

Ce qui suit est un exemple d'implémentation :

if ($userInfo) {
  $query = "SELECT * FROM users WHERE openid = '".$userInfo['openid']."'";
  $result = mysqli_query($conn, $query);

  if (mysqli_num_rows($result) == 0) {
    $query = "INSERT INTO users (openid, nickname, sex, province, city, country, headimgurl, created_at) VALUES ('".$userInfo['openid']."', '".$userInfo['nickname']."', '".$userInfo['sex']."', '".$userInfo['province']."', '".$userInfo['city']."', '".$userInfo['country']."', '".$userInfo['headimgurl']."', NOW())";
    mysqli_query($conn, $query);
  }

  $_SESSION['openid'] = $userInfo['openid'];
  $_SESSION['nickname'] = $userInfo['nickname'];
  $_SESSION['headimgurl'] = $userInfo['headimgurl'];

  // 将用户重定向到您网站的一个页面
  header('Location: /index.php');
}

Dans ce code, nous utilisons d'abord une instruction de requête pour savoir si l'utilisateur existe dans la base de données. S'il n'existe pas, ajoutez-le à la base de données à l'aide d'une instruction insert. Enfin, nous configurons la session utilisateur de manière à ce que les informations de l'utilisateur persistent après sa connexion et les redirigent vers une page de notre site.

Résumé

Grâce aux étapes ci-dessus, nous pouvons facilement implémenter la fonction de connexion WeChat en PHP. Il convient de noter que lors de la mise en œuvre de cette fonction, les développeurs doivent se conformer pleinement aux normes fournies dans la documentation du développeur WeChat et traiter correctement les informations utilisateur obtenues à partir du serveur WeChat.

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