Autorisation de la page Web WeChat
Autorisation de la page Web WeChat
Si l'utilisateur accède à une page Web tierce dans le client WeChat, le compte officiel peut obtenir les informations de base de l'utilisateur via le mécanisme d'autorisation de la page Web WeChat, puis mettre en œuvre une logique métier.
Instructions sur le nom de domaine de rappel d'autorisation de page Web
1. Avant que le compte officiel WeChat ne demande l'autorisation de page Web de l'utilisateur, le développeur doit accéder à la section « Développement-Autorisations d'interface-Service de page Web-Compte de page Web-Obtention d'autorisation de page Web » sur le site officiel de la plateforme publique Dans les options de configuration des « Informations utilisateur de base », modifiez le nom de domaine de rappel d'autorisation. Veuillez noter que le nom de domaine (qui est une chaîne) est renseigné ici, pas l'URL, veuillez donc ne pas ajouter d'en-têtes de protocole tels que http://
2 La spécification de configuration du nom de domaine de rappel d'autorisation est le domaine complet. nom, tel qu'un nom de domaine qui nécessite une autorisation de page Web. Il s'agit de : www.qq.com Après configuration, les pages http://www.qq.com/music.html et http://www.qq.com. /login.html sous ce nom de domaine peut effectuer l'authentification OAuth2.0. Mais http://pay.qq.com, http://music.qq.com, http://qq.com ne peuvent pas effectuer l'authentification OAuth2.0
3 Si la connexion au compte officiel est autorisée à un tiers. développeur Pour gérer, vous n'avez besoin de faire aucun réglage, laissez simplement un tiers remplacer le compte officiel pour mettre en œuvre l'autorisation de la page Web
Explication sur la différence entre les deux étendues d'autorisation de page Web
1. L'autorisation de page Web initiée avec snsapi_base comme étendue est utilisée pour obtenir l'openid de l'utilisateur qui entre dans la page, et est autorisée en silence et saute automatiquement. à la page de rappel. Ce que l'utilisateur perçoit, c'est qu'il accède directement à la page de rappel (souvent une page professionnelle)
2. L'autorisation de la page Web initiée avec snsapi_userinfo comme scope est utilisée pour obtenir les informations de base de l'utilisateur. Cependant, ce type d'autorisation nécessite le consentement manuel de l'utilisateur, et puisque l'utilisateur a accepté, les informations de base de l'utilisateur peuvent être obtenues après autorisation sans y prêter attention.
3. L'"Interface d'obtention des informations de base de l'utilisateur" dans l'interface de gestion des utilisateurs peut obtenir les informations de base de l'utilisateur en fonction de l'OpenID de l'utilisateur uniquement après que l'utilisateur a interagi avec le compte officiel ou poussé l'événement après avoir suivi le message. Cette interface, y compris d'autres interfaces WeChat, nécessite que l'utilisateur (c'est-à-dire openid) suive le compte officiel avant de pouvoir l'appeler avec succès.
À propos de la différence entre l'autorisation de page Web access_token et l'access_token ordinaire
1. L'autorisation de page Web WeChat est mise en œuvre via le mécanisme OAuth2.0 Une fois que l'utilisateur a autorisé le compte officiel, le compte officiel peut obtenir un appel d'interface unique pour la page Web. autorisation. Informations d'identification (autorisation de page Web access_token), via l'autorisation de page Web access_token, vous pouvez effectuer des appels d'interface post-autorisation, tels que l'obtention d'informations utilisateur de base
;2. Pour les autres interfaces WeChat, vous devez obtenir l'appel access_token ordinaire via l'interface « Get access_token » dans le support de base.
À propos du mécanisme UnionID
1 Veuillez noter que l'autorisation de la page Web pour obtenir des informations utilisateur de base suit également le mécanisme UnionID. Autrement dit, si un développeur a besoin d'unifier les comptes d'utilisateurs entre plusieurs comptes officiels, ou entre des comptes officiels et des applications mobiles, il doit se rendre sur la plateforme ouverte WeChat (open.weixin.qq.com) pour lier le compte officiel avant de pouvoir utilisez le mécanisme UnionID pour répondre aux besoins ci-dessus.
2. Description du rôle du mécanisme UnionID : Si un développeur possède plusieurs applications mobiles, applications de sites Web et comptes publics, le caractère unique de l'utilisateur peut être distingué en obtenant l'unionid dans les informations de base de l'utilisateur, car le même utilisateur est ouvert au même WeChat Différentes applications de la plateforme (applications mobiles, applications de sites Web et comptes publics) ont le même unionid.
À propos de l'autorisation silencieuse dans des scénarios spéciaux
1 Comme mentionné ci-dessus, pour l'autorisation de page Web avec snsapi_base comme portée, elle est autorisée silencieusement et l'utilisateur n'en est pas conscient
2. account , si l'utilisateur accède à la page d'autorisation Web du compte officiel à partir de la session du compte officiel ou du menu personnalisé, même si la portée est snsapi_userinfo, l'autorisation est silencieuse et l'utilisateur l'ignore.
Plus précisément, le processus d'autorisation de la page Web est divisé en quatre étapes :
1. Guidez l'utilisateur pour qu'il accède à la page d'autorisation pour accepter l'autorisation et obtenir le code
2. Échangez le code pour l'autorisation de la page Web access_token (différent du access_token). dans le support de base)
3. Si nécessaire, les développeurs peuvent actualiser le access_token d'autorisation de page Web pour éviter l'expiration
4. Obtenez les informations de base de l'utilisateur via access_token d'autorisation de page Web et openid (prend en charge le mécanisme UnionID)
Étape 1. : L'utilisateur accepte l'autorisation et obtient le code
En partant du principe de s'assurer que le compte public WeChat dispose des autorisations de la portée d'autorisation (paramètre scope) (une fois que le compte de service a obtenu l'interface avancée, il aura snsapi_base et snsapi_userinfo dans le paramètre scope par défaut), guidez les abonnés pour ouvrir la page suivante :
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect S'il vous demande "Le lien n'est pas accessible", veuillez vérifier si les paramètres sont correctement renseigné. Avoir les autorisations de portée d'autorisation correspondant au paramètre de portée.
Remarque spéciale : en raison du niveau de sécurité élevé des opérations d'autorisation, lors du lancement d'une demande d'autorisation, WeChat effectuera régulièrement une vérification de correspondance forte sur le lien d'autorisation. Si les paramètres du lien sont dans le mauvais ordre, le la page d'autorisation ne sera pas accessible normalement
Lien de référence (veuillez ouvrir ce lien dans le client WeChat pour en faire l'expérience) la portée est snsapi_base https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https %3A%2F%2Fchong.qq .com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdap
ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas
e&state=123# wechat_redirect Scope est snsapi_userinfo https: // ouvrir .weixin.qq.com / connect / oauth2 / autorise? Appid = wxf0e81c3bee622d60 & redirect_uri Erinfo & State = State # WeChat_Redirect
Attention particulière : le jump callback redirect_uri doit utiliser un lien https pour assurer la sécurité du code d'autorisation.
Description du paramètre
Le paramètre | est-il obligatoire ? | Description |
---|---|---|
appid | est l'identifiant unique du | compte officiel |
redirect_uri | est le lien de rappel redirigé après | adresse d'autorisation, s'il vous plaît utilisez la paire de codes urlen Le lien est traité |
response_type | est le | type de retour, veuillez remplir le code |
scope | est | portée d'autorisation de l'application, snsapi_base (la page d'autorisation ne s'affiche pas, saute directement, seul l'utilisateur openid peut être obtenu), snsapi_userinfo (la page d'autorisation apparaît et le surnom, le sexe et l'emplacement peuvent être obtenus via openid.De plus, Même si l'utilisateur n'y prête pas attention, tant que l'utilisateur l'autorise, les informations peuvent être obtenues) |
state | Non | Le paramètre state sera inclus après redirection, les développeurs pourront le renseigner a-zA-Z0 La valeur du paramètre -9, jusqu'à 128 octets |
#wechat_redirect | est | Que vous l'ouvriez directement ou fassiez une redirection page 302, vous devez apporter ce paramètre |
L'image ci-dessous montre la page d'autorisation lorsque la portée est égale à snsapi_userinfo :
Une fois que l'utilisateur a accepté l'autorisation
Si l'utilisateur accepte l'autorisation, la page passera à redirect_uri/?code =CODE&état=ÉTAT.
Description du code : le code est utilisé comme ticket en échange d'un access_token. Le code apporté avec chaque autorisation d'utilisateur sera différent. Le code ne peut être utilisé qu'une seule fois et expirera automatiquement s'il n'est pas utilisé pendant 5 minutes.
Étape 2 : Échangez le access_token d'autorisation de page Web via le code
Tout d'abord, veuillez noter que ce qui est échangé via le code ici est un access_token d'autorisation de page Web spécial, qui est différent du access_token dans le support de base (cet access_token est utilisé pour appeler d'autres interfaces). Les comptes officiels peuvent obtenir une autorisation de page Web access_token via l'interface suivante. Si la portée de l'autorisation de page Web est snsapi_base, dans cette étape, lors de l'obtention de l'autorisation de page Web access_token, l'openid est également obtenu et le processus d'autorisation de page Web de style snsapi_base se termine ici.
Attention particulière : Le secret du compte officiel et le access_token obtenu ayant un niveau de sécurité très élevé, ils doivent uniquement être enregistrés sur le serveur et ne peuvent pas être transmis au client. Les étapes ultérieures telles que l'actualisation de access_token et l'obtention d'informations utilisateur via access_token doivent également être lancées à partir du serveur.
Méthode de demande
Après avoir obtenu le code, demandez le lien suivant pour obtenir access_token : https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
Description du paramètre