Maison >Applet WeChat >Développement de mini-programmes >Explication du processus de connexion d'autorisation de l'applet WeChat

Explication du processus de connexion d'autorisation de l'applet WeChat

不言
不言original
2018-07-23 11:12:2612975parcourir

Le contenu de cet article est d'expliquer le processus de connexion d'autorisation de l'applet WeChat. Il a une certaine valeur de référence et les amis dans le besoin peuvent s'y référer.

L’activité de l’entreprise se développe et elle a récemment achevé le développement d’une applet WeChat. Le scénario est le suivant : une application et une applet WeChat avec le même sujet sous la même plate-forme ouverte WeChat accomplissent la même tâche. Lorsque l'utilisateur entre dans l'application ou l'applet WeChat, l'identifiant syndical de l'utilisateur doit être obtenu pour confirmer l'identité actuelle de l'utilisateur et compléter. 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. Calendrier du processus de connexion à l'applet WeChat

Explication du processus de connexion dautorisation de lapplet WeChat

Instructions :

  1. L'applet appelle wx . login() obtient le code d'identification de connexion temporaire et le renvoie au serveur de développeur

  2. Le serveur de 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
  • 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 à l'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 les mini-programmes WeChat obtiennent-ils l'UnionID ?

Les mini-programmes liés à un compte de développeur peuvent obtenir l'UnionID des trois 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 sont priés de 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 déjà 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 public ou une application mobile du même sujet sous le compte développeur, et que l'utilisateur a été autorisé à se connecter au compte public ou à l'application mobile. Les développeurs peuvent également obtenir l'UnionID de l'utilisateur directement via wx.login sans avoir à nouveau besoin de l'autorisation de l'utilisateur.


Lorsque l'utilisateur remplit les conditions 2 et 3, le développeur peut obtenir l'identifiant syndical de l'utilisateur directement via wx.login, sinon il doit le faire. en appelant l'interface wx.getUserInfo, une chose supplémentaire à laquelle il faut faire attention est de gérer correctement la situation où l'utilisateur refuse 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 sont obtenues.

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


  • Encapsulate 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 et avoir une compréhension de base du mini-programme. sachez, n'ouvrez pas directement une boîte pour demander l'autorisation aux utilisateurs, sinon cela interférera avec les utilisateurs et entraînera la perte de nouveaux utilisateurs. Lorsque les utilisateurs ont besoin d'utiliser certaines fonctions et scénarios avancés, demandez l'autorisation aux utilisateurs à ce moment-là, donc. que la probabilité d'autorisation de l'utilisateur sera grandement améliorée.
    Encapsuler la logique de connexion avec ajax
    Processus :

    La signification de l'encapsulation
    Ne faites plus attention à savoir si le courant L'interface nécessite une connexion. Que l'utilisateur ait été autorisé, 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.

    Recommandations associées :

    Développement de mini-programmes WeChat : la nécessité pour les entreprises de développer des mini-programmes

    Développement de mini-programmes WeChat Méthode de saut de page

    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