Heim WeChat-Applet Mini-Programmentwicklung Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

May 09, 2020 am 09:17 AM
小程序

Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

Um Miniprogrammanwendungen die Verwendung des WeChat-Anmeldestatus für autorisierte Anmeldungen zu erleichtern, bietet das WeChat-Miniprogramm eine offene Schnittstelle für die Anmeldeautorisierung. Auf den ersten Blick finde ich das Dokument sehr vernünftig, aber was die Umsetzung angeht, ist es wirklich verwirrend und ich weiß nicht, wie ich den Anmeldestatus verwalten und pflegen soll. In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie im Unternehmen auf den WeChat-Anmeldestatus zugreifen und diesen beibehalten.

Zugriffsprozess

Das Flussdiagramm im offiziellen Dokument hier ist klar genug, daher werden wir es direkt ausarbeiten und ergänzen.

Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

Wenn Sie dieses Bild sehen, werden Sie auf jeden Fall bemerken, dass das Miniprogramm nicht nur mit dem Miniprogramm-Frontend und unserem eigenen Server kommuniziert und interagiert. Aber auch der WeChat-Server eines Drittanbieters ist ebenfalls beteiligt. Welche Rolle spielt der WeChat-Server dabei? Lassen Sie uns gemeinsam den Login-Authentifizierungsprozess durchgehen und wir werden es verstehen.

1. Rufen Sie wx.login auf, um Code zu generieren

Die Funktion der wx.login()-API besteht darin, temporäre Anmeldeinformationen für den aktuellen Benutzer zu generieren Die Anmeldedaten sind nur fünf Minuten lang gültig. Nachdem wir diese Anmeldeinformationen erhalten haben, können wir mit dem nächsten Schritt fortfahren: openid und session_key abrufen

openid und session_key abrufen

Lassen Sie uns zunächst openid vorstellen Schuhe, die öffentliche Konten verwendet haben, sollten mit diesem Logo vertraut sein. Auf der öffentlichen Plattform wird es verwendet, um die eindeutige Identität jedes Benutzers in drei verschiedenen Anwendungen zu identifizieren: Abonnementkonto, Dienstkonto und Miniprogramm openid ist in jeder Anwendung inkonsistent, sodass wir im Miniprogramm openid verwenden können, um die Einzigartigkeit des Benutzers zu identifizieren.

Wofür wird session_key verwendet? Mit der Benutzer-ID müssen wir dem Benutzer die Anmeldung ermöglichen. Anschließend stellt der Sitzungsschlüssel die Gültigkeit des Sitzungsvorgangs des aktuellen Benutzers sicher. Dieser Sitzungsschlüssel wird vom WeChat-Server an uns verteilt. Mit anderen Worten: Wir können diesen Bezeichner verwenden, um indirekt den Anmeldestatus unserer Applet-Benutzer aufrechtzuerhalten. Wie haben wir diesen Sitzungsschlüssel erhalten? Wir müssen die von WeChat bereitgestellte Drittanbieterschnittstelle https://api.weixin.qq.com/sns/jscode2session auf unserem eigenen Server anfordern. Diese Schnittstelle muss vier Parameterfelder mitbringen:

Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

Anhand dieser Parameter können wir erkennen, dass Sie zum Anfordern dieser Schnittstelle zunächst wx.login() aufrufen müssen, um den Code der aktuellen Sitzung des Benutzers zu erhalten. Warum müssen wir diese Schnittstelle serverseitig anfordern? Tatsächlich geschieht dies aus Sicherheitsgründen. Wenn wir diese Schnittstelle über eine Anfrage am Frontend aufrufen, müssen wir zwangsläufig die Appid unseres Miniprogramms und das Geheimnis des Miniprogramms nach außen preisgeben wird auch den vom WeChat-Server ausgegebenen Sitzungsschlüssel offenlegen. Dies birgt große Risiken für die Sicherheit unseres Unternehmens. Zusätzlich zum Erhalt des Sitzungsschlüssels auf der Serverseite müssen wir auch auf zwei Punkte achten:

Sitzungsschlüssel entspricht eins zu eins dem von WeChat verteilten Code, und derselbe Code kann nur gegen Sitzungsschlüssel ausgetauscht werden einmal. Bei jedem Aufruf von wx.login() wird ein neuer Code und ein entsprechender Sitzungsschlüssel ausgegeben. Um die Benutzererfahrung und die Gültigkeit des Anmeldestatus sicherzustellen, müssen Entwickler wissen, dass sich der Benutzer erneut anmelden muss, bevor er wx aufruft .login()

session_key ist ungültig. Auch wenn wx.login nicht aufgerufen wird, läuft session_key positiv mit der Häufigkeit der Benutzer ab, die das Miniprogramm verwenden nicht verfügbar für Entwickler und Benutzer. Die sogenannte Indirektion bedeutet, dass wir die Anmeldestatusinformationen des Benutzers selbst verwalten müssen. Dabei werden auch Sicherheitsfaktoren berücksichtigt. Wenn der vom WeChat-Server verteilte Sitzungsschlüssel direkt als Anmeldestatus der Geschäftspartei verwendet wird „Absichtliche Personen“, um die vertraulichen Informationen des Benutzers zu erhalten, wie z. B. wx.getUserInfo( ). Diese Schnittstelle erfordert session_key, um die vertraulichen Informationen von WeChat-Benutzern zu entschlüsseln.

Was passiert also, wenn wir unsere eigene Login-Status-ID generieren? Hier können wir mehrere gängige irreversible Hash-Algorithmen wie md5, sha1 usw. verwenden, um die Login-Status-ID zu generieren (hier bezeichnen wir sie gemeinsam als). „skey“) wird an das Frontend zurückgegeben und die Anmeldestatuskennung wird am Frontend verwaltet (normalerweise im Speicher gespeichert). Auf der Serverseite speichern wir den generierten Schlüssel in der Datentabelle, die dem Benutzer entspricht, und das Frontend greift durch Übergabe des Schlüssels auf die Informationen des Benutzers zu.

Sie können sehen, dass wir den sha1-Algorithmus verwendet haben, um einen Schlüssel zu generieren:

wx.login({
    success: function(loginRes) {
        if (loginRes.code) {
            // example: 081LXytJ1Xq1Y40sg3uJ1FWntJ1LXyth
        }
    }
});
Nach dem Login kopieren

checkSession

前面我们将skey存入前端的storage里,每次进行用户数据请求时会带上skey,那么如果此时session_key过期呢?所以我们需要调用到wx.checkSession()这个API来校验当前session_key是否已经过期,这个API并不需要传入任何有关session_key的信息参数,而是微信小程序自己去调自己的服务来查询用户最近一次生成的session_key是否过期。如果当前session_key过期,就让用户来重新登录,更新session_key,并将最新的skey存入用户数据表中。

checkSession这个步骤呢,我们一般是放在小程序启动时就校验登录态的逻辑处,这里贴个校验登录态的流程图:

Wie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?

下面代码即校验登录态的简单流程:

let loginFlag = wx.getStorageSync(\'skey\');
if (loginFlag) {
    // 检查 session_key 是否过期
    wx.checkSession({
        // session_key 有效(未过期)
        success: function() {
            // 业务逻辑处理
        },
    
        // session_key 过期
        fail: function() {
            // session_key过期,重新登录
            doLogin();
        }
    });
) else {
    // 无skey,作为首次登录
    doLogin();
}
Nach dem Login kopieren

推荐:《小程序开发教程

Das obige ist der detaillierte Inhalt vonWie greift das Miniprogramm auf den WeChat-Anmeldestatus zu und verwaltet ihn?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entwickeln Sie ein WeChat-Applet mit Python Entwickeln Sie ein WeChat-Applet mit Python Jun 17, 2023 pm 06:34 PM

Mit der Popularität mobiler Internettechnologie und Smartphones ist WeChat zu einer unverzichtbaren Anwendung im Leben der Menschen geworden. Mit WeChat-Miniprogrammen können Benutzer Miniprogramme direkt verwenden, um einige einfache Anforderungen zu erfüllen, ohne Anwendungen herunterladen und installieren zu müssen. In diesem Artikel wird erläutert, wie Sie mit Python ein WeChat-Applet entwickeln. 1. Vorbereitung Bevor Sie Python zum Entwickeln des WeChat-Applets verwenden, müssen Sie die entsprechende Python-Bibliothek installieren. Hier empfiehlt es sich, die beiden Bibliotheken wxpy und itchat zu verwenden. wxpy ist eine WeChat-Maschine

Können kleine Programme reagieren? Können kleine Programme reagieren? Dec 29, 2022 am 11:06 AM

Miniprogramme können React verwenden. 1. Implementieren Sie einen Renderer basierend auf „React-Reconciler“ und generieren Sie eine Miniprogrammkomponente zum Parsen und Rendern von DSL. 3. Installieren Sie npm und führen Sie den Entwickler-Build aus npm im Tool; 4. Führen Sie das Paket auf Ihrer eigenen Seite ein und verwenden Sie dann die API, um die Entwicklung abzuschließen.

Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Nov 21, 2023 am 10:55 AM

Implementieren von Kartenumdreheffekten in WeChat-Miniprogrammen In WeChat-Miniprogrammen ist die Implementierung von Kartenumdreheffekten ein häufiger Animationseffekt, der die Benutzererfahrung und die Attraktivität von Schnittstelleninteraktionen verbessern kann. Im Folgenden wird detailliert beschrieben, wie der Kartenumdrehungseffekt im WeChat-Applet implementiert wird, und relevante Codebeispiele bereitgestellt. Zunächst müssen Sie in der Seitenlayoutdatei des Miniprogramms zwei Kartenelemente definieren, eines für die Anzeige des vorderen Inhalts und eines für die Anzeige des hinteren Inhalts. Der spezifische Beispielcode lautet wie folgt: <!--index.wxml-. ->&l

Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Oct 31, 2023 pm 09:25 PM

Laut Nachrichten dieser Website vom 31. Oktober und 27. Mai dieses Jahres kündigte die Ant Group den Start des „Chinese Character Picking Project“ an und leitete kürzlich neue Fortschritte ein: Alipay startete das Miniprogramm „Chinese Character Picking – Uncommon Characters“. um Sammlungen der Gesellschaft zu sammeln. Seltene Charaktere ergänzen die Bibliothek seltener Charaktere und bieten unterschiedliche Eingabeerlebnisse für seltene Charaktere, um die Eingabemethode für seltene Charaktere in Alipay zu verbessern. Derzeit können Benutzer das Applet „Ungewöhnliche Zeichen“ aufrufen, indem sie nach Schlüsselwörtern wie „Aufnehmen chinesischer Zeichen“ und „Seltene Zeichen“ suchen. Im Miniprogramm können Benutzer Bilder von seltenen Zeichen einreichen, die vom System nicht erkannt und eingegeben wurden. Nach der Bestätigung nehmen Alipay-Ingenieure zusätzliche Einträge in die Schriftartenbibliothek vor. Auf dieser Website wurde festgestellt, dass Benutzer im Miniprogramm auch die neueste Eingabemethode zur Wortteilung nutzen können. Diese Eingabemethode ist für seltene Wörter mit unklarer Aussprache konzipiert. Demontage durch den Benutzer

Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Oct 20, 2023 pm 02:12 PM

Wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, erfordert spezifische Codebeispiele. Mit der Entwicklung des mobilen Internets und der Popularität von Smartphones sind Miniprogramme und H5 zu unverzichtbaren Anwendungsformen geworden. Als plattformübergreifendes Entwicklungsframework kann Uniapp die Konvertierung zwischen kleinen Programmen und H5 basierend auf einer Reihe von Codes schnell realisieren und so die Entwicklungseffizienz erheblich verbessern. In diesem Artikel wird vorgestellt, wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, und es werden konkrete Codebeispiele gegeben. 1. Einführung in uniapp unia

So bedienen Sie die Miniprogramm-Registrierung So bedienen Sie die Miniprogramm-Registrierung Sep 13, 2023 pm 04:36 PM

Schritte zur Miniprogramm-Registrierung: 1. Erstellen Sie Kopien von Personalausweisen, Unternehmenslizenzen, juristischen Personenausweisen und anderen Archivierungsmaterialien. 2. Melden Sie sich beim Miniprogramm-Verwaltungshintergrund an. Wählen Sie „Grundeinstellungen“; 5. Geben Sie die Anmeldeinformationen ein; 6. Laden Sie die Anmeldematerialien hoch; 7. Senden Sie den Anmeldeantrag; 8. Warten Sie auf die Überprüfungsergebnisse. Wenn die Einreichung nicht bestanden wird, nehmen Sie basierend auf den Gründen Änderungen vor und den Einreichungsantrag erneut einreichen. 9. Die Folgemaßnahmen für die Einreichung sind Can.

Tutorial zum Schreiben eines einfachen Chat-Programms in Python Tutorial zum Schreiben eines einfachen Chat-Programms in Python May 08, 2023 pm 06:37 PM

Implementierungsidee x01 Servereinrichtung Zunächst wird auf der Serverseite ein Socket zum Empfangen von Nachrichten verwendet. Jedes Mal, wenn eine Socket-Anfrage angenommen wird, wird ein neuer Thread geöffnet, um die Verteilung und Annahme von Nachrichten zu verwalten Um alle Threads zu verwalten und damit die Verarbeitung verschiedener Funktionen des Chatrooms zu realisieren, ist die Einrichtung des x02-Clients viel einfacher als die des Servers. Die Funktion des Clients besteht lediglich darin, Nachrichten zu senden und zu empfangen und bestimmte Zeichen einzugeben Um die Verwendung unterschiedlicher Funktionen zu erreichen, müssen Sie daher auf der Clientseite nur zwei Threads verwenden, einen für den Empfang von Nachrichten und einen für das Senden von Nachrichten liegt daran, nur

Einführung in die WeChat-Applet-Entwicklung in der Java-Sprache Einführung in die WeChat-Applet-Entwicklung in der Java-Sprache Jun 09, 2023 pm 10:40 PM

Das WeChat-Applet ist eine leichte Anwendung, die auf der WeChat-Plattform ausgeführt werden kann. Es erfordert keinen Download und keine Installation, was bequem und schnell ist. Die Java-Sprache, eine in der Anwendungsentwicklung auf Unternehmensebene weit verbreitete Sprache, kann auch für die Entwicklung von WeChat-Applets verwendet werden. In der Java-Sprache können Sie das SpringBoot-Framework und Toolkits von Drittanbietern verwenden, um WeChat-Applets zu entwickeln. Das Folgende ist ein einfacher WeChat-Applet-Entwicklungsprozess. Um ein WeChat-Miniprogramm zu erstellen, müssen Sie zunächst ein Miniprogramm auf der öffentlichen WeChat-Plattform registrieren. Nach erfolgreicher Registrierung können Sie es erhalten

See all articles