Heim  >  Artikel  >  WeChat-Applet  >  Erläuterung des Autorisierungs-Anmeldevorgangs des WeChat-Applets

Erläuterung des Autorisierungs-Anmeldevorgangs des WeChat-Applets

不言
不言Original
2018-07-23 11:12:2612916Durchsuche

Der Inhalt dieses Artikels besteht darin, den Autorisierungs-Anmeldeprozess des WeChat-Applets zu erläutern. Er hat einen gewissen Referenzwert und Freunde in Not können sich darauf beziehen.

Das Geschäft des Unternehmens entwickelt sich und es hat kürzlich die Entwicklung eines WeChat-Applets abgeschlossen. Das Szenario ist folgendes: Eine APP und ein WeChat-Applet mit demselben Betreff unter derselben offenen WeChat-Plattform schließen dasselbe Geschäft ab. Wenn der Benutzer die App oder das WeChat-Applet betritt, muss die Unionid des Benutzers abgerufen werden, um die aktuelle Benutzeridentität zu bestätigen und abzuschließen das Login. Die Aufrufmethode der API „Benutzerinformationen abrufen“ (getUserInfo) des Miniprogramms wurde im Vergleich zu zuvor erheblich aktualisiert. Es ist sehr wichtig, die Benutzerautorisierung und -anmeldung elegant zu implementieren. Das Folgende ist meine Implementierung des Autorisierungs-Anmeldevorgangs des WeChat-Miniprogramms Die Ideen und die Zusammenfassung werden unten geteilt.

1. Zeitpunkt des WeChat-Applet-Anmeldevorgangs

Erläuterung des Autorisierungs-Anmeldevorgangs des WeChat-Applets

Anweisungen:

  1. Das Applet ruft wx auf. login() ruft den temporären Anmeldeinformationscode ab und gibt ihn an den Entwicklerserver zurück

  2. Der Entwicklerserver tauscht den Code gegen die eindeutige Kennung openid und den Sitzungsschlüssel session_key des Benutzers aus.

  3. Der temporäre Anmeldeinformationscode kann nur einmal verwendet werden

Was ist openid?

Nachrichten zwischen Followern und der Öffentlichkeit generieren Konten Nach der Interaktion kann das offizielle Konto die OpenID des Followers erhalten (verschlüsselte WeChat-ID, die OpenID jedes Benutzers ist für jedes offizielle Konto eindeutig. Für verschiedene offizielle Konten ist die OpenID desselben Benutzers unterschiedlich). ——Entwicklerdokumentation für die öffentliche WeChat-Plattform
  • Die Identifizierung normaler Benutzer, eindeutig für das aktuelle öffentliche Konto

  • Verschiedene öffentliche Konten, derselbe Benutzer , openid ist anders

man kann es einfach verstehen als

openid = hash(uid + app_id)

Was ist Unionid?

Wenn der Entwickler über mehrere mobile Anwendungen, Website-Anwendungen und öffentliche Konten (einschließlich Miniprogramme) verfügt, kann der Benutzer anhand der Unionid eindeutig unterschieden werden, da es sich um mobile Anwendungen unter demselben offenen WeChat-Plattformkonto handelt , Website-Anwendungen und öffentliche Konten (einschließlich Miniprogramme) ist die Unionid des Benutzers eindeutig. Mit anderen Worten: Für denselben Benutzer ist die Unionid für verschiedene Anwendungen unter derselben offenen WeChat-Plattform gleich. Beschreibung des UnionID-Mechanismus

Wenn ein Entwickler Benutzerkonten zwischen mehreren mobilen Anwendungen, Website-Anwendungen und öffentlichen Konten vereinheitlichen muss, muss er zur offenen WeChat-Plattform (open.weixin.qq.com) gehen, um die Öffentlichkeit zu binden Konto Dann kann der UnionID-Mechanismus verwendet werden, um die oben genannten Anforderungen zu erfüllen.

  • Ein Konto auf der offenen WeChat-Plattform kann mehrere mobile Anwendungen, Website-Anwendungen, öffentliche Konten und Miniprogramme haben

  • Solange es dasselbe ist WeChat Für mobile Anwendungen, Website-Anwendungen und öffentliche Konten (einschließlich Miniprogramme) unter offenen Plattformkonten ist die Unionid des Benutzers eindeutig.

Die eindeutige Kennung des Benutzers auf der offenen Plattform

Sie können es einfach wie folgt verstehen:

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

Zusammenfassung
WeChat verfügt über eine eindeutige openId für verschiedene Benutzer in verschiedenen Anwendungen. Wenn Sie jedoch feststellen möchten, ob es sich bei den Benutzern um denselben Benutzer handelt, müssen Sie sich zur Unterscheidung auf die Unionid verlassen. Im Allgemeinen verfügt Ihr eigenes Backend über eine eigene Benutzertabelle und jeder Benutzer hat eine andere Benutzer-ID. Das heißt, die Anwendungen desselben Benutzers zum gleichen Thema auf derselben offenen WeChat-Plattform entsprechen derselben Benutzer-ID, Unionid und unterschiedlichen OpenID. Wenn sich also ein Benutzer anmeldet, können wir uns nur auf die von WeChat an uns zurückgegebene Unionid verlassen, um festzustellen, ob es sich um denselben Benutzer handelt, und sie dann unserer Benutzertabelle zuordnen, um die entsprechende Benutzer-ID zu erhalten.

2. Wie erhalte ich UnionID für das WeChat-Miniprogramm?

Das an ein Entwicklerkonto gebundene Miniprogramm kann auf drei Arten erhalten.

  1. Rufen Sie die Schnittstelle wx.getUserInfo auf, um die UnionID aus den entschlüsselten Daten zu erhalten. Beachten Sie, dass für diese Schnittstelle eine Benutzerautorisierung erforderlich ist. Entwickler werden gebeten, ordnungsgemäß mit der Situation umzugehen, nachdem der Benutzer die Autorisierung verweigert.

  2. Wenn unter dem Entwicklerkonto ein öffentliches Konto mit demselben Betreff vorhanden ist und der Benutzer dem öffentlichen Konto bereits gefolgt ist. Entwickler können die UnionID des Benutzers direkt über wx.login abrufen, ohne dass der Benutzer erneut autorisiert werden muss.

  3. Wenn unter dem Entwicklerkonto ein offizielles Konto oder eine mobile Anwendung desselben Themas vorhanden ist und der Benutzer autorisiert wurde, sich beim offiziellen Konto oder der mobilen Anwendung anzumelden. Entwickler können die UnionID des Benutzers auch direkt über wx.login abrufen, ohne dass eine erneute Benutzerautorisierung erforderlich ist.


Wenn der Benutzer die Bedingungen 2 und 3 erfüllt, kann der Entwickler die Unionid des Benutzers direkt über wx.login abrufen, andernfalls muss dies erfolgen Beim Aufrufen der Schnittstelle wx.getUserInfo ist außerdem zu beachten, dass die Situation, in der der Benutzer die Autorisierung verweigert, ordnungsgemäß gehandhabt werden muss.

3. Best Practices für die Anmeldung

  1. Rufen Sie wx.login an, um den Code zu erhalten.

  2. Verwenden Sie wx.getSetting, um die Autorisierung des Benutzers zu erhalten

  • Wenn der Benutzer autorisiert wurde, rufen Sie direkt die API wx.getUserInfo auf Erhalten Sie die neuesten Informationen des Benutzers

  • Der Benutzer ist nicht autorisiert. Auf der Benutzeroberfläche wird eine Schaltfläche angezeigt, die den Benutzer auffordert, sich anzumelden. Wenn der Benutzer klickt und autorisiert, werden die neuesten Informationen des Benutzers abgerufen.

  • Übergeben Sie die erhaltenen Benutzerdaten zusammen mit dem von wx.login zurückgegebenen Code an das Backend


  • Encapsulate ajax()

    In realen Geschäftsszenarien hoffen wir, dass Benutzer beim Aufrufen des Miniprogramms die Produkte normal durchsuchen können, ohne sich anzumelden, und ein grundlegendes Verständnis des Miniprogramms haben Beachten Sie, dass Sie nicht direkt ein Popup-Fenster öffnen müssen, um Benutzer um Autorisierung zu bitten, da dies sonst zu Störungen der Benutzer führt und zum Verlust neuer Benutzer führt. Wenn Benutzer einige erweiterte Funktionen und Szenarien verwenden müssen, bitten Sie die Benutzer zu diesem Zeitpunkt um Autorisierung dass die Wahrscheinlichkeit einer Benutzerautorisierung erheblich verbessert wird.
    Kapseln Sie die Anmeldelogik mit Ajax
    Prozess:

    Die Bedeutung der Kapselung
    Achten Sie nicht mehr darauf, ob der Strom aktuell ist Die Schnittstelle erfordert eine Anmeldung. Unabhängig davon, ob der Benutzer autorisiert wurde, werden alle Anfragen direkt aufgerufen und alle Anmelde- und Autorisierungsvorgänge werden bei Bedarf abgeschlossen. Die Einstiegsseite des Miniprogramms wurde erweitert. Wenn Sie Ihr Unternehmen erweitern, müssen Sie sich nur auf die Geschäftsumsetzung konzentrieren. ajax()

    Verwandte Empfehlungen:

    WeChat Mini-Programmentwicklung: Die Notwendigkeit von Unternehmen, Miniprogramme zu entwickeln

    WeChat Mini-Programmentwicklung Seitensprungmethode

    Das obige ist der detaillierte Inhalt vonErläuterung des Autorisierungs-Anmeldevorgangs des WeChat-Applets. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn