Maison  >  Article  >  Applet WeChat  >  Calendrier du processus de connexion d'autorisation du programme WeChat Mini - Explication graphique détaillée

Calendrier du processus de connexion d'autorisation du programme WeChat Mini - Explication graphique détaillée

php是最好的语言
php是最好的语言original
2018-07-25 11:37:144432parcourir

Je travaille actuellement sur un projet de développement d'applet WeChat. Disposition du scénario : les applications et les mini-programmes WeChat ayant le même sujet sous la même plate-forme ouverte WeChat effectuent la même activité. Lorsque les utilisateurs accèdent à l'application ou au mini-programme WeChat, ils doivent obtenir l'identifiant syndical de l'utilisateur pour confirmer l'identité actuelle de l'utilisateur et terminer la connexion. La méthode d'appel de l'API « obtenir des informations utilisateur » du mini programme (getUserInfo) a été considérablement mise à jour par rapport à avant. Il est très important d'implémenter avec élégance l'autorisation et la connexion de l'utilisateur. Voici ma mise en œuvre du processus de connexion d'autorisation du mini programme WeChat. développement. Les idées et le résumé sont partagés ci-dessous.

1. Moment du processus de connexion de l'applet WeChat

Calendrier du processus de connexion dautorisation du programme WeChat Mini - Explication graphique détaillée

Explication :

  1. L'applet appelle wx.login( ) Obtenez le code d'identification de connexion temporaire et renvoyez-le au serveur du développeur

  2. Le serveur du développeur échange le code contre l'identifiant unique de l'utilisateur openid et la clé de session session_key.

  3. Le code d'identification de connexion temporaire ne peut être utilisé qu'une seule fois

Qu'est-ce qu'openid ?

Générer des messages entre les abonnés et le public comptes Après interaction, le compte officiel peut obtenir l'OpenID du suiveur (ID WeChat crypté, l'OpenID de chaque utilisateur pour chaque compte officiel est unique. Pour différents comptes officiels, l'openid du même utilisateur est différent). ——Documentation du développeur de la plateforme publique WeChat
  • L'identification des utilisateurs ordinaires, unique au compte public actuel

  • Différents comptes publics, le même utilisateur , openid est différent

vous pouvez simplement le comprendre comme

openid = hash(uid + app_id)

Qu'est-ce que unionid ?

Si le développeur possède plusieurs applications mobiles, applications de site Web et comptes publics (y compris des mini-programmes), l'utilisateur peut être distingué de manière unique par unionid, car tant qu'il s'agit d'applications mobiles sous le même compte de plateforme ouverte WeChat , les applications de sites Web et les comptes publics (y compris les mini-programmes), l'identifiant syndical de l'utilisateur est unique. En d’autres termes, pour un même utilisateur, l’unionid est le même pour différentes applications sous la même plateforme ouverte WeChat. Description du mécanisme UnionID

Si un développeur doit unifier les comptes d'utilisateurs entre plusieurs applications mobiles, applications de sites Web et comptes publics, il doit se rendre sur la plateforme ouverte WeChat (open.weixin.qq.com) pour lier le public account Ensuite, le mécanisme UnionID peut être utilisé pour répondre aux besoins ci-dessus.

  • Un compte de plateforme ouverte WeChat peut avoir plusieurs applications mobiles, applications de sites Web, comptes publics et mini-programmes

  • Tant qu'il est le même WeChat Pour les applications mobiles, les applications de sites Web et les comptes publics (y compris les mini-programmes) sous les comptes de plateforme ouverte, l'identifiant syndical de l'utilisateur est unique.

L'identifiant unique de l'utilisateur sur la plateforme ouverte

Vous pouvez simplement le comprendre comme :

unionid = hash(uid + 开放平台id)

Pour résumer
WeChat a un openId unique pour différents utilisateurs dans différentes applications, mais si vous souhaitez déterminer si les utilisateurs sont le même utilisateur, vous devez vous fier à unionid pour les distinguer. Généralement, votre propre backend aura sa propre table utilisateur et chaque utilisateur aura un ID utilisateur différent. C'est-à-dire que les applications du même utilisateur sur le même sujet sous la même plate-forme ouverte WeChat correspondent au même identifiant utilisateur, à l'identifiant union et à un openid différent. Ainsi, lorsqu'un utilisateur se connecte, nous ne pouvons compter que sur l'unionid qui nous est renvoyé par WeChat pour déterminer s'il s'agit du même utilisateur, puis l'associer à notre table utilisateur pour obtenir l'ID utilisateur correspondant.

2. Comment obtenir l'UnionID pour le mini-programme WeChat ?

Le mini-programme lié à un compte développeur peut obtenir l'UnionID des 3 manières suivantes.

  1. Appelez l'interface wx.getUserInfo pour obtenir l'UnionID à partir des données décryptées. Notez que cette interface nécessite l'autorisation de l'utilisateur. Les développeurs doivent gérer correctement la situation après que l'utilisateur a refusé l'autorisation.

  2. S'il existe un compte public avec le même sujet sous le compte développeur et que l'utilisateur a suivi le compte public. Les développeurs peuvent obtenir l'UnionID de l'utilisateur directement via wx.login sans l'autorisation de l'utilisateur.

  3. S'il existe un compte officiel ou une application mobile sur le même sujet sous le compte développeur, et que l'utilisateur a été autorisé à se connecter au compte officiel ou à l'application mobile. Les développeurs peuvent également obtenir l'UnionID de l'utilisateur directement via wx.login sans nécessiter une nouvelle autorisation de l'utilisateur.

Calendrier du processus de connexion dautorisation du programme WeChat Mini - Explication graphique détaillée

Lorsque l'utilisateur remplit les conditions 2 et 3, le développeur peut directement obtenir l'unionid de l'utilisateur via wx.login, sinon l'interface doit être appeléewx.getUserInfo, Une attention particulière doit être accordée à la gestion appropriée des situations dans lesquelles les utilisateurs refusent l'autorisation.

3. Bonnes pratiques de connexion

  1. Appelez wx.login pour obtenir le code.

  2. Utilisez wx.getSetting pour obtenir l'autorisation de l'utilisateur

  • Si l'utilisateur a été autorisé, appelez directement l'API wx.getUserInfo pour obtenir les dernières informations de l'utilisateur ;

  • L'utilisateur n'est pas autorisé. Un bouton s'affiche dans l'interface pour inviter l'utilisateur à se connecter. Lorsque l'utilisateur clique et autorise, les dernières informations de l'utilisateur. est obtenu.

  • Transmettez les données utilisateur obtenues au backend avec le code renvoyé par wx.login

  • Calendrier du processus de connexion dautorisation du programme WeChat Mini - Explication graphique détaillée

    Encapsuler ajax()

    Dans des scénarios commerciaux réels, nous espérons que lorsque les utilisateurs entrent dans le mini-programme, ils pourront parcourir les produits normalement sans se connecter, avoir une compréhension de base du mini-programme et ne pas afficher directement de boîtes. Exiger l'autorisation de l'utilisateur, sinon cela interférera avec les utilisateurs et entraînera la perte de nouveaux utilisateurs. Lorsque les utilisateurs doivent utiliser certaines fonctions et scénarios avancés, demandez l'autorisation aux utilisateurs à ce moment-là, de sorte que la probabilité d'autorisation de l'utilisateur soit considérablement augmentée.
    Encapsuler la logique de connexion avec ajax
    Processus :
    Calendrier du processus de connexion dautorisation du programme WeChat Mini - Explication graphique détaillée

    La signification de l'encapsulation
    Ne faites plus attention à savoir si l'interface actuelle nécessite une connexion et si l'utilisateur dispose déjà d'une autorisation, toutes les demandes sont directement appelées ajax() et tous les processus de connexion et d'autorisation sont terminés si nécessaire. La page d'accueil du mini-programme a été agrandie. Lorsque vous développez votre entreprise, vous devez uniquement vous concentrer sur la mise en œuvre de votre entreprise.

    Matériel de référence

    • Mini programme • Histoire courte (4) - Obtenir des informations sur l'utilisateur

    • Obtenir des informations utilisateur de base (UnionID mécanisme)

    • Description du mécanisme UnionID

    Recommandations associées :

    Document de développement du programme WeChat Mini

    Tutoriel vidéo pratique sur le développement du mini programme WeChat

    Tutoriel vidéo sur le développement du mini programme 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