Ich arbeite derzeit an einem WeChat-Applet-Entwicklungsprojekt. Szenario-Layout: APPs und WeChat-Miniprogramme mit demselben Thema unter derselben offenen WeChat-Plattform erledigen dasselbe Geschäft. Wenn Benutzer die App oder das WeChat-Miniprogramm aufrufen, müssen sie die Unionid des Benutzers abrufen, um die aktuelle Benutzeridentität zu bestätigen und die Anmeldung abzuschließen. 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.
Erklärung:
Das Applet ruft wx.login( ) Holen Sie sich den temporären Anmeldeinformationscode und senden Sie ihn an den Entwicklerserver zurück
Der Entwicklerserver tauscht den Code gegen die eindeutige Kennung openid und den Sitzungsschlüssel session_key des Benutzers aus.
Der temporäre Anmeldeinformationscode kann nur einmal verwendet werden
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
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)
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 diese dann mit unserer Benutzertabelle verknüpfen, um die entsprechende Benutzer-ID zu erhalten.
Das an ein Entwicklerkonto gebundene Miniprogramm kann auf drei Arten erhalten.
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.
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.
Wenn unter dem Entwicklerkonto ein öffentliches Konto oder eine mobile Anwendung desselben Themas vorhanden ist und der Benutzer autorisiert wurde, sich beim öffentlichen Konto oder bei der mobilen Anwendung anzumelden. Entwickler können die UnionID des Benutzers auch direkt über wx.login abrufen, ohne dass der Benutzer sich erneut autorisieren muss.
Wenn der Benutzer die Bedingungen 2 und 3 erfüllt, kann der Entwickler die Unionid des Benutzers direkt über wx.login abrufen, andernfalls muss die Schnittstelle aufgerufen werdenwx.getUserInfo
, Besondere Aufmerksamkeit muss dem ordnungsgemäßen Umgang mit Situationen gewidmet werden, in denen Benutzer die Autorisierung verweigern.
Rufen Sie wx.login an, um den Code zu erhalten.
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 angezeigt erhalten wird.
Übergeben Sie die erhaltenen Benutzerdaten zusammen mit dem von wx.login zurückgegebenen Code an das Backend
In realen Geschäftsszenarien hoffen wir, dass Benutzer beim Aufrufen des Miniprogramms die Produkte normal durchsuchen können, ohne sich anzumelden, ein grundlegendes Verständnis des Miniprogramms haben und keine direkten Popup-Fenster öffnen Wenn Benutzer einige erweiterte Funktionen und Szenarien verwenden müssen, ist eine Benutzerautorisierung erforderlich. Andernfalls wird die Wahrscheinlichkeit einer Benutzerautorisierung erheblich erhöht.
Kapseln Sie die Anmeldelogik mit Ajax
Prozess:
Die Bedeutung der Kapselung
Achten Sie nicht mehr darauf, ob für die aktuelle Schnittstelle eine Anmeldung erforderlich ist und unabhängig davon, ob der Benutzer bereits über eine Autorisierung verfügt, werden alle Anfragen direkt ajax()
aufgerufen und alle Anmelde- und Autorisierungsprozesse 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.
Miniprogramm•Kleine Geschichte (4) – Benutzerinformationen abrufen
Grundlegende Benutzerinformationen abrufen ( UnionID Mechanismus)
Beschreibung des UnionID-Mechanismus
Verwandte Empfehlungen:
WeChat Mini Program Development Document
Praktisches Video-Tutorial zur Entwicklung des WeChat-Miniprogramms
Video-Tutorial zur Entwicklung des WeChat-Miniprogramms
Das obige ist der detaillierte Inhalt vonZeitpunkt des Autorisierungs-Anmeldevorgangs für das WeChat Mini-Programm – detaillierte grafische Erklärung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!