La plate-forme publique de WeChat a récemment lancé l'authentification WeChat, et vous pouvez obtenir des autorisations d'interface avancées après l'authentification. De nombreux amis échouent ou ne peuvent pas comprendre leur contenu lorsqu'ils l'utilisent. Aujourd'hui, l'éditeur de la nouvelle chaîne technologique vous offre une autorisation de page Web de développement WeChat pour obtenir des informations de base utilisateur.
1. Qu'est-ce que OAuth2.0
Site officiel: http://oauth.net/ http://oauth.net/2/
Définition faisant autorité: OAuth est un protocole ouvert pour permettre une autorisation sécurisée dans une méthode simple et standard à partir des applications Web, mobiles et de bureau.
OAuth est un accord ouvert qui permet aux utilisateurs d'obtenir des ressources privées (telles que les informations personnelles, les photos, les vidéos, les listes de contacts) stockées par des applications tierces de manière sécurisée et standard (telles que les informations personnelles d'utilisateur, les photos, les vidéos, les listes de contacts) stockées sur un site Web, une application mobile ou de bureau sans fournir de nom d'utilisateur et de mot de passe aux applications tierces.
OAuth 2.0 est la prochaine version du protocole OAuth, mais n'est pas compatible en arrière avec OAuth 1.0. OAuth 2.0 se concentre sur la simplicité des développeurs de clients, tout en fournissant un processus de certification dédié pour les applications Web, les applications de bureau et les téléphones portables et les appareils de salon.
OAuth permet aux utilisateurs de fournir un jeton au lieu d'un nom d'utilisateur et d'un mot de passe pour accéder aux données qu'ils stockent dans un fournisseur de services spécifique. Chaque jeton autorise un site Web spécifique (par exemple, un site Web d'édition vidéo) pour accéder à une ressource spécifique (par exemple, juste une vidéo dans un certain album) dans un délai spécifique (par exemple, dans les 2 prochaines heures). De cette façon, OAuth permet aux utilisateurs d'autoriser des sites Web tiers pour accéder aux informations qu'ils stockent sur un autre fournisseur de services sans partager toutes leurs autorisations d'accès ou leurs données.
L'API SINA Weibo utilise actuellement également OAuth 2.0.
2. Autorisation de la plate-forme publique WeChat OAuth2.0
Les étapes détaillées pour l'autorisation de la plate-forme publique WeChat OAuth2.0 sont les suivantes:
1. Les utilisateurs suivent les comptes publics WeChat.
2. Le compte public WeChat fournit l'URL de la page d'autorisation de la demande de l'utilisateur.
3. L'utilisateur clique sur l'URL de la page d'autorisation et lancera une demande au serveur.
4. Le serveur demande à l'utilisateur s'il accepte d'autoriser le compte public WeChat (il n'y a pas une telle étape lorsque la portée est SNSAPI_BASE)
5. L'utilisateur est d'accord (il n'y a pas une telle étape lorsque la portée est SNSAPI_BASE)
6. Le serveur transmet le code au compte public WeChat via le rappel
7. Obtenez du code sur le compte public WeChat
8. Le compte public WeChat demande le jeton d'accès au serveur via le code
9. Le serveur renvoie le jeton d'accès et OpenID au compte public WeChat
10. Le compte public WeChat demande des informations utilisateur sur le serveur via un jeton d'accès (il n'y a pas une telle étape lorsque la portée est SNSAPI_BASE)
11. Le serveur renvoie les informations des utilisateurs au compte public WeChat (il n'y a pas une telle étape lorsque la portée est SNSAPI_BASE)
L'Apid et AppSecret utilisés peuvent être trouvés dans l'ID de développeur de développement de développeur.
1. Configurez le nom de domaine de la page de rappel d'autorisation
Après avoir entré dans le fond de la plate-forme publique de WeChat, entrez à tour de tour le tableau de permission centrale du développeur, trouvez l'autorisation de la page Web pour obtenir des informations de base utilisateur.
Cliquez sur Modifier à droite.
La spécification de configuration du nom de domaine pour le rappel d'autorisation est un nom de domaine complet et n'inclut pas HTTP. Par exemple, le nom de domaine qui nécessite l'autorisation Web est: www.qq.com. Après la configuration, les pages ci-dessous ce nom de domaine http://www.qq.com/music.html et http://www.qq.com/login.html peuvent tous effectuer une authentification OAuth2.0. Cependant, http://pay.qq.com, http://music.qq.com et http://qq.com ne peut pas effectuer une authentification OAuth2.0.
Ici, nous remplissons un nom de domaine secondaire Baidu Application de Fangbi Studio en tant que mascot.duapp.com
Si votre URL n'est pas sur liste noire, elle apparaîtra en haut
Ensuite, la configuration du nom de domaine réussit.
2. Autorisation des utilisateurs et obtenir du code
Dans le répertoire racine du nom de domaine, créez un nouveau fichier, nommez-le oauth2.php, et son contenu est
<? phPIF (isset ($ _ get ['code'])) {echo $ _get ['code'];} else {echo "pas de code";}?>Comprenons d'abord comment construire la page d'autorisation:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=Appid&redirect_uri=redirect_uri&response_type=code&scope=scope&state=state#wechat_redirect
Description du paramètre
| paramètre | doit | illustrer |
|---|---|---|
| appid | Oui | L'identifiant unique du compte officiel |
| redirect_uri | Oui | Adresse du lien de rappel redirigé après autorisation |
| réponse_type | Oui | Type de retour, veuillez remplir le code |
| portée | Oui | Appliquer la portée de l'autorisation, SNSAPI_BASE (aucune page d'autorisation apparaît, juste des sauts, seul l'utilisateur OpenID peut être obtenu), SNSAPI_USERINFO (page d'autorisation popup, vous pouvez obtenir le surnom, le genre et l'emplacement via OpenID. Et, même si vous ne suivez pas, tant que l'utilisateur l'autorise, vos informations peuvent être obtenues) |
| État | Non | Après la redirection, les paramètres d'état seront inclus et les développeurs peuvent remplir toutes les valeurs de paramètre. |
| #wechat_redirect | Non | Ouvrez le lien directement sur WeChat et ne remplissez pas ce paramètre. Ce paramètre doit être inclus lors de la redirection de la page 302 |
Étendue de l'autorisation d'application: puisque SNSAPI_BASE ne peut obtenir qu'OpenID, cela n'a pas beaucoup de sens, nous utilisons donc SNSAPI_USERINFO.
Adresse de rappel: remplissez comme l'adresse du fichier d'Oauth2.php vient de télécharger,
Paramètres d'état: n'importe quel nombre, remplissez 1 ici
L'URL de la demande de construction est la suivante:
https://open.weixin.qq.com/connect/oauth2/Authorize?appid=wx88888888888888&redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect
Envoyez ce lien vers WeChat pour ouvrir dans le navigateur WeChat. Ici, utilisez le lien A pour le résumer comme suit:
Bienvenue à suivre [Jinbao], ce qui peut vous permettre de trouver des magasins de restauration, de vêtements, de grands magasins et de salons de beauté qui conviennent à vos souhaits près de chez vous.
<a href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx88888888888888 &redirect_uri=http: //mascot.duapp.com/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"> click ici pour lier </a>
Support technique Fangbi Studio
Montrer comme suit dans WeChat
Après avoir cliqué sur la liaison, l'interface d'autorisation d'application apparaît
Sélectionnez Autoriser, cliquez
Sautez sur la page Auth2.php et exécutez
echo $ _get ['code']
Le code s'affiche sur l'interface. À l'heure actuelle, le lien est obtenu en copiant le lien dans le bouton dans le coin supérieur droit:
http://mascot.duapp.com/oauth2.php?code=00b788e3b42043c8459a57a8d8ab5d9f&state=1
Nous avons réussi le code.
Remarque: Si une telle interface apparaît pendant la liaison, cela signifie que les paramètres sont incorrects et que vous devez revenir en arrière et vérifier les paramètres.
3. Utilisez du code pour échanger Access_token
Comment construire la page Access_token pour l'échange pour l'autorisation Web:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=Appid&secret=Secret&code=code&grant_type=authorization_code
Description du paramètre
| paramètre | Est-ce nécessaire | illustrer |
|---|---|---|
| appid | Oui | L'identifiant unique du compte officiel |
| Secrète | Oui | L'application de compte officiel |
| code | Oui | Remplissez les paramètres de code obtenus dans la première étape |
| Grant_Type | Oui | Remplissez en tant qu'autorisation_code |
Code: Remplissez ici comme la valeur obtenue à l'étape précédente
L'URL de la demande de construction est la suivante:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=WX8888888888888&secret=aaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa & code = 00b788e3b42043c8459a57a8d8ab5d9f & grant_type = autorise_code
Vous pouvez exécuter cette instruction directement dans le navigateur:
(
Voici la clé, qui est d'obtenir le code de données JSON via l'URL ci-dessus
$ ch = curl_init (); curl_setopt ($ ch, curlopt_url, $ url); curl_setopt ($ ch, curlopt_returntransfer, 1); // nécessite que le résultat soit une chaîne et la sortie de l'écran curl_setopt ($ ch, curlopt_header, 0); // ne pas en-tête http accélérer l'efficacité Curl_setopt ($ ch, curlopt_usegerrent, 'mozilla / 5.0 (compatible; msie 5.01; windows nt 5.0)'); curl_setopt ($ ch, curlopt_timeout, 15); curl_setopt ($ ch, curlopt_ssl_verifypeer, false); // La demande https ne vérifie pas les certificats et hôte curl_setopt ($ ch, curlopt_ssl_verifyhost, false); $ output = curl_exec ($ ch); curl_close ($ ch); $ JSonDECODE = JSON_DECODE ($ Output); // Encode les chaînes au format JSON $ array = get_object_vars ($ jSonDecode); // Convertir en array // Les deux lignes rouges sont le point clé, pour HTTPS, j'ai du mal pour plus d'un jour Echo $ Array;
)
Obtenez les données JSON suivantes:
{"Access_token": "OEZXCEIIBSKSXW0EOYLIEASR0GMYD1AWCFFDHGB4FHS_KKF2COTGJ2CBNUKQQVJ-G0ZWEE5-UBJ BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5AI1BW2UQN - 2JXOBLIM5D6L9RIMVM8VG8CBAILPWA8VW ", "Expires_in": 7200, "Refresh_token": "OEZXCEIIBSKSXW0EOYLIEASR0GMYD1AWCFFDHGB4FHS_KKF2COTGJ2CBNUKQQVJ-G0ZWEE5-UBJ BZ941EOPQDQY5SS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUZQ1A ", "OpenID": "olvppjqs9bhvzwpj5a-vtyax3glc", "scope": "snsapi_userinfo,"}Le format de données est interprété comme suit:
| paramètre | décrire |
|---|---|
| Access_token | Interface d'autorisation Web Informations d'appel, Remarque: Cet Access_token est différent de l'accès_token pris en charge par la base |
| expires_in | Access_token Interface Call Timeout des informations d'identification, unité (secondes) |
| actualiser | Refrex de l'utilisateur Access_token |
| ouverte | Identifiant unique de l'utilisateur. Veuillez noter que lorsque les utilisateurs ne suivent pas le compte officiel, lorsque les utilisateurs visitent la page Web du compte officiel, ils généreront également un OpenID unique pour les utilisateurs et les comptes officiels. |
| portée | La portée de l'autorisation des utilisateurs, séparée par la virgule (,) |
Ainsi, nous avons réussi à échanger Access_token et Refresh_Token via le code.
Actualiser Access_token
Le document officiel mentionne la fonction d'accès rafraîchissant access_token, mais ce n'est pas un must. Vous pouvez l'ignorer pour la première fois en l'utilisant.
La méthode de la demande d'URL est la suivante:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=Appid&grant_type=refresh_token&refresh_token=refresh_token
Description du paramètre
| paramètre | Est-ce nécessaire | illustrer |
|---|---|---|
| appid | Oui | L'identifiant unique du compte officiel |
| Grant_Type | Oui | Remplissez-vous en tant que rafraîchissement |
| actualiser | Oui | Remplissez le paramètre Refresh_token obtenu via Access_token |
La structure est la suivante:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx8888888888888&grant_type=refresh_token&refresh_token=EZXCEIIBSKSXW0EOY LIEASR0GMYD1AWCFFDHGB4FHS_KKF2COTGJ2CBNUKQQVJ-G0ZWEE5-UBJBZ941EOPQDQY5SS_GCS2Z40DNVU99Y5CZPAWZKSIUZ_6X_TFKLOXLU7KDKM2232WDXB3MSUM
Exécutez les données JSON dans le même format dans le navigateur
4. Utilisez Access_token pour obtenir des informations utilisateur
Méthode de demande:
https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openID=OpenID
Description du paramètre
| paramètre | décrire |
|---|---|
| Access_token | Interface d'autorisation Web Informations d'appel, Remarque: Cet Access_token est différent de l'accès_token pris en charge par la base |
| ouverte | ID unique de l'utilisateur |
L'URL est construite comme suit:
https://api.weixin.qq.com/sns/userinfo?access_token=oEZXCEIIBSKSXW0EOYLIEASR0GMYD1AWCFFDHGB4FHS_KKF2COTGJ2CNUKQQVJ-G0Z Wee5-ubjbz941eopqdqy5ss_gcs2z40dnvu99y5ai1bw2uqn--2jxoblim5d6l9rimvm8vg8cbailpwa8vw & openID = olvppjqs9bhvzwpj5a-vtyax3glclc
Vous pouvez exécuter cette instruction directement dans le navigateur:
Obtenez les données JSON suivantes:
{"OpenID": "olvppjqs9bhvzwpj5a-vtyax3glc", "surnom": "fangbi", "sexe": 1, "langage": "zh_cn", "ville": "Shenzhen", "province": "Guangdong" "http://wx.qlogo.cn/mmopen/Utpkyf69vabcrdrlbuspsdqn38doibckru6samcsnx558etalvm8pym6jlegzorh67hyzibizpxu4bk1xnwzsxb3cs4qpbbg18/0", ": []]Interprétation des paramètres:
| paramètre | décrire |
|---|---|
| ouverte | ID unique de l'utilisateur |
| surnom | Surnom d'utilisateur |
| sexe | Le sexe de l'utilisateur, lorsque la valeur est 1, c'est un homme, lorsque la valeur est 2, elle est une femme, et lorsque la valeur est 0, elle est inconnue |
| province | Provinces remplies dans le profil utilisateur |
| ville | La ville a rempli les informations personnelles des utilisateurs ordinaires |
| pays | Pays, comme la Chine est CN |
| casque | Avatar de l'utilisateur, la dernière valeur représente la taille de l'avatar carré (il y a 0, 46, 64, 96 et 132 valeurs facultatives, et 0 représente 640 * 640 carrés avatar). Cet élément est vide lorsque l'utilisateur n'a pas d'avatar. |
| privilège | Informations sur le privilège des utilisateurs, JSON Array, comme WeChat Woka User (ChinaUnicom) |
Cela est conforme à mes informations de WeChat personnelles
À ce stade, sans entrer dans mon compte et mon mot de passe, le compte public WeChat Jinbao a obtenu mes informations personnelles, y compris mon surnom, le sexe, le pays, la province, la ville, l'avatar personnel et la liste des privilèges.
Une certification OAuth2 complète est terminée.
3. Démonstration détaillée
Suivez Fangbei Studio (voir le code QR ci-dessous), répondez "Autorisation", revenez au graphique et au SMS, cliquez sur l'image
Sur la page de confirmation, cliquez sur "Autoriser"
Le résultat obtenu apparaît (l'image est soumise à un traitement antivol, donc il ne peut pas être affiché directement, vous pouvez le télécharger localement et l'afficher)
Ce qui précède concerne les informations sur le développement Web de l'autorisation de WeChat pour obtenir des informations de base des utilisateurs, l'autorisation Web d'obtenir des informations utilisateur et les informations pertinentes seront ajoutées à l'avenir. Merci pour votre soutien de la nouvelle chaîne technologique!