


Eine kurze Analyse, wie die Login-Funktion in Miniprogrammen implementiert wird
Wie implementiert man die Login-Funktion im Miniprogramm? In diesem Artikel erfahren Sie, wie Sie das Mini-Programm-Login richtig öffnen. Ich hoffe, er hilft Ihnen weiter!
Mini-Programm-Netzwerkkomponente
https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
RequestTask-Beschreibung
Methode | Beschreibung |
---|---|
RequestTask.abort() | Abbrechen der Anforderungsaufgabe. |
RequestTask.onHeadersReceived(Funktionsrückruf) | HTTP-Antwort-Header-Ereignisse abhören. tritt früher ein als das Anforderungsabschlussereignis. |
RequestTask.offHeadersReceived(Funktionsrückruf) | Abbrechen der Überwachung auf HTTP-Response-Header-Ereignisse. |
RequestTask.onChunkReceived(function callback) | Hören Sie sich das Transfer-Encoding Chunk Received-Ereignis an. Wird ausgelöst, wenn ein neuer Block empfangen wird. |
RequestTask.offChunkReceived(Funktionsrückruf) | Abbrechen des Abhörens des Transfer-Encoding Chunk Received-Ereignisses. |
wx.request(Object object) attribute
Hier werden nur die am häufigsten verwendeten Attribute aufgeführt. Alle Attribute finden Sie unter dem Link.
Eigenschaft | Typ | Standardwert | Erforderlich | Beschreibung |
---|---|---|---|---|
URL | Zeichenfolge | Ja | Schnittstellenadresse des Entwicklerservers | |
Daten | Zeichenfolge /object/ArrayBuffer | Nein | Angeforderte Parameter | |
header | Object | Nein | Legen Sie den angeforderten Header fest. Der Referrer kann nicht im Header festgelegt werden. content-type 默认为 application/json
|
|
Timeout | Nummer | Nein | Timeout in Millisekunden | |
Methode | String | GET | Nein | HTTP-Anfrage Methode |
Erfolg | Funktion |
|
Nein | Die Rückruffunktion für einen erfolgreichen Schnittstellenaufruf. |
fehlgeschlagene Funktion. |
Nein. |
Die Rückruffunktion für einen fehlgeschlagenen Schnittstellenaufruf | ||
Die Rückruffunktion am Ende des Schnittstellenaufrufs (wird unabhängig davon ausgeführt, ob der Aufruf erfolgreich ist oder fehlschlägt), auch wenn es sich um eine abgebrochene Anfrage handelt! |
alle haben die gleiche Ergebnisverarbeitungsmethode: Sie alle haben drei Rückrufattribute: Erfolg, Fehler und Abschluss.
Einführung in das errMsg-Objekt in verschiedenen Situationen der Schnittstellenausführung.
- Callback-Eigenschaft
errMsg-Objekt
{errMsg:"request:ok"...} | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
abort | |||||||||||||||||
Methodenname | Beschreibung |
---|---|
Promise.prototype.then | Die Methode gibt ein neues Promise-Objekt zurück, sodass es verkettet geschrieben werden kann. Dieses Design ermöglicht das einfache Umschreiben verschachtelter asynchroner Vorgänge, von der „horizontalen Entwicklung“ von Rückruffunktionen bis zur „Abwärtsentwicklung“. |
Promise.prototype.catch | ist ein Alias von Promise.prototype.then (null, Ablehnung) und wird verwendet, um die Rückruffunktion anzugeben, wenn ein Fehler auftritt. Fehler bei Promise-Objekten haben einen „Blasen“-Charakter und werden rückwärts weitergegeben, bis sie abgefangen werden. Das heißt, der Fehler wird immer von der nächsten Catch-Anweisung abgefangen. Die Methode |
Promise.prototype.finally | gibt ein Promise Promise 。在promise结束时,无论结果是fulfilled或者是rejected,都会执行指定的回调函数。这为在Promise 是否成功完成后都需要执行的代码提供了一种方式。 |
Promise.all | 这避免了同样的语句需要在then() 和catch() 中各写一次的情况。Promise.all 方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。Promise.all 方法接受一个数组作为参数,var p = Promise.all([p1,p2,p3]); p1、p2、p3 都是 Promise 对象的实例。(Promise.all 方法的参数不一定是数组,但是必须具有 iterator 接口,且返回的每个成员都是 Promise 实例。)p 的状态由 p1、p2、p3 决定,分成两种情况。 (1)只有p1、p2、p3的状态都变成fulfilled,p的状态才会变成fulfilled,此时p1、p2、p3的返回值组成一个数组,传递给p的回调函数。 (2)只要p1、p2、p3之中有一个被rejected,p的状态就变成rejected,此时第一个被reject的实例的返回值,会传递给p的回调函数。 |
Promise.race | Promise.race 方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例。var p = Promise.race([p1,p2,p3]); 上面代码中,只要p1、p2、p3之中有一个实例率先改变状态,p的状态就跟着改变。那个率先改变的Promise实例的返回值,就传递给p的返回值。 |
Promise.any | 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。所有子实例都处于rejected状态,总的promise才处于rejected状态。 |
Promise.allSettled | 返回一个在所有给定的promise都已经fulfilled 或rejected 后的promise,并带有一个对象数组,每个对象表示对应的promise结果。相比之下,Promise.all() 更适合彼此相互依赖或者在其中任何一个reject zurück. Am Ende des Versprechens wird die angegebene Rückruffunktion ausgeführt, unabhängig davon, ob das Ergebnis erfüllt oder abgelehnt wird. Dies bietet eine Möglichkeit für Code, der ausgeführt werden muss, unabhängig davon, ob das Promise erfolgreich abgeschlossen wird oder nicht. |
then()
🎜 und 🎜catch()
🎜 geschrieben werden muss. Die Promise.all-Methode wird verwendet, um mehrere Promise-Instanzen in eine neue Promise-Instanz zu packen. Die Promise.all-Methode akzeptiert ein Array als Parameter, var p = Promise.all([p1,p2,p3]);
p1, p2, p3 sind alle Instanzen des Promise-Objekts. (Die Parameter der Promise.all-Methode müssen keine Arrays sein, sie müssen jedoch über eine Iteratorschnittstelle verfügen und jedes zurückgegebene Mitglied ist eine Promise-Instanz.) Der Zustand von p wird durch p1, p2 und p3 bestimmt und ist in zwei Situationen unterteilt. (1) Erst wenn der Status von p1, p2 und p3 erfüllt ist, wird der Status von p erfüllt. Zu diesem Zeitpunkt bilden die Rückgabewerte von p1, p2 und p3 ein Array und werden an übergeben Callback-Funktion von p. (2) Solange einer von p1, p2 und p3 abgelehnt wird, wird der Status von p abgelehnt. Zu diesem Zeitpunkt wird der Rückgabewert der ersten abgelehnten Instanz an die Rückruffunktion von p übergeben. 🎜🎜🎜🎜 Promise.race🎜🎜🎜Die Promise.race-Methode verpackt auch mehrere Promise-Instanzen in eine neue Promise-Instanz. var p = Promise.race([p1,p2,p3]);
Solange im obigen Code eine Instanz von p1, p2 und p3 zuerst den Zustand ändert, ändert sich der Zustand von p entsprechend ändern. Der Rückgabewert der Promise-Instanz, die sich zuerst geändert hat, wird an den Rückgabewert von p übergeben. 🎜🎜🎜🎜 Promise.any🎜🎜🎜 empfängt ein iterierbares Promise-Objekt, und solange eines der Versprechen erfolgreich ist, wird das erfolgreiche Versprechen zurückgegeben. Alle Unterinstanzen befinden sich im Status „Abgelehnt“ und das gesamte Versprechen befindet sich im Status „Abgelehnt“. 🎜🎜🎜🎜 Promise.allSettled🎜🎜🎜Gibt ein Versprechen zurück, nachdem alle gegebenen Versprechen erfüllt
oder abgelehnt
wurden, mit einem Array von Objekten, wobei jedes Objekt das entsprechende Ergebnis des Versprechens darstellt. Im Gegensatz dazu eignet sich Promise.all()
besser für Abhängigkeiten voneinander oder endet sofort, wenn einer von ihnen ablehnt
. 🎜🎜🎜🎜小程序API接口Promise化并且把需要登录的调用接口模块化
1、安装插件。请先查看npm支持文档。
npm install --save miniprogram-api-promise
2、在微信开发者工具右方详情中勾选使用npm模块,并在菜单栏工具中点击构建npm。
3、初始化代码。
// app.js import {promisifyAll} from 'miniprogram-api-promise' import login from "../lib/login"; const wxp ={} promisifyAll(wx,wxp) // 需要token的请求统一处理登录和设置header,并且处理错误信息 wxp.requestNeedLogin = async function (args) { let token = wx.getStorageSync("token"); if (!token) { token = await loginWithPromise(); } if (!args.header) args.header = {}; args.header["Authorization"] = `Bearer ${token}`; return wxp.request(args).catch(console.error); }; // app.js App({ wxp:wxp, });
4、改写login.js代码
// lib/login.js function login() { return new Promise((resolve, reject) => { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 // 开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: "用于完善会员资料", // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success:async (res0) => { let { userInfo, encryptedData, iv } = res0; const app = getApp(); try { app.wxp.checkSession(); } catch (err) { reject(err); } let token = wx.getStorageSync("token"); if (!token) { let res1 = await app.wxp.login().catch(err => reject(err)); let code = res1.code; let res = await app.wxp.request({ url: "http://localhost:3000/user/weixin-login", method: "POST", header: { "content-type": "application/json", }, data: { code, userInfo, encryptedData, iv, } }).catch(err => reject(err)); token = res.data.data.authorizationToken; wx.setStorageSync("token", token); app.globalData.token = token; wx.showToast({ title: "登录成功了", }); resolve(token); } }, }); }) } export default login;
5、调用代码
<view class="container page-head"> <text class="page-section__title">需要登录的请求调用</text> <view class="btn-area"> <button bindtap="request1" type="primary">请求1</button> <button bindtap="request2" type="primary">请求2</button> </view> </view>
// pages/index.js Page({ /** * 页面的初始数据 */ data: {}, request1() { getApp().wxp.requestNeedLogin({ url: "http://localhost:3000/user/home?name=andying", }).then(console.log) }, request2() { getApp().wxp.requestNeedLogin({ url: "http://localhost:3000/user/home?name=eva", }).then(console.log) }, });
【相关学习推荐:小程序开发教程】
Das obige ist der detaillierte Inhalt vonEine kurze Analyse, wie die Login-Funktion in Miniprogrammen implementiert wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wenn Sie sich auf Ihrem Computer beim Steam-Konto einer anderen Person anmelden und das Konto dieser anderen Person über eine Hintergrundsoftware verfügt, lädt Steam automatisch die Hintergrundbilder herunter, die für das Konto der anderen Person abonniert wurden, nachdem Sie zu Ihrem eigenen Konto zurückgewechselt haben Deaktivieren der Steam-Cloud-Synchronisierung. Was tun, wenn WallpaperEngine die Hintergrundbilder anderer Personen herunterlädt, nachdem Sie sich bei einem anderen Konto angemeldet haben? 1. Melden Sie sich bei Ihrem eigenen Steam-Konto an, suchen Sie in den Einstellungen nach der Cloud-Synchronisierung und deaktivieren Sie die Steam-Cloud-Synchronisierung. 2. Melden Sie sich bei dem Steam-Konto einer anderen Person an, bei dem Sie sich zuvor angemeldet haben, öffnen Sie den Wallpaper Creative Workshop, suchen Sie nach den Abonnementinhalten und kündigen Sie dann alle Abonnements. (Falls Sie das Hintergrundbild in Zukunft nicht mehr finden, können Sie es zunächst abholen und dann das Abonnement kündigen.) 3. Wechseln Sie zurück zu Ihrem eigenen Steam

Mit der rasanten Entwicklung der sozialen Medien ist Xiaohongshu für viele junge Menschen zu einer beliebten Plattform geworden, auf der sie ihr Leben teilen und neue Produkte entdecken können. Während der Nutzung können Benutzer manchmal auf Schwierigkeiten stoßen, sich bei früheren Konten anzumelden. In diesem Artikel wird ausführlich erläutert, wie das Problem der Anmeldung beim alten Konto auf Xiaohongshu gelöst werden kann und wie mit der Möglichkeit umgegangen werden kann, dass das ursprüngliche Konto nach dem Ändern der Bindung verloren geht. 1. Wie melde ich mich bei Xiaohongshus vorherigem Konto an? 1. Rufen Sie das Passwort ab und melden Sie sich an. Wenn Sie sich längere Zeit nicht bei Xiaohongshu anmelden, wird Ihr Konto möglicherweise vom System recycelt. Um die Zugriffsrechte wiederherzustellen, können Sie versuchen, sich erneut bei Ihrem Konto anzumelden, indem Sie Ihr Passwort abrufen. Die Bedienungsschritte sind wie folgt: (1) Öffnen Sie die Xiaohongshu-App oder die offizielle Website und klicken Sie auf die Schaltfläche „Anmelden“. (2) Wählen Sie „Passwort abrufen“. (3) Geben Sie die Mobiltelefonnummer ein, die Sie bei der Registrierung Ihres Kontos verwendet haben

Tausende von Geistern schrien in den Bergen und auf den Feldern, und das Geräusch des Waffenwechsels verschwand. Die Geistergeneräle, die mit wütendem Kampfgeist im Herzen über die Berge stürmten, nutzten das Feuer als Trompete, um Hunderte von Geistern zum Angriff zu verleiten in die Schlacht. [Blazing Flame Bairen·Ibaraki Doji Collection Skin ist jetzt online] Die Geisterhörner lodern vor Flammen, die vergoldeten Augen strotzen vor widerspenstigem Kampfgeist und die weißen Jade-Rüstungsteile zieren das Hemd und zeigen den widerspenstigen und wilden Schwung der Großen Dämon. Auf den schneeweißen, flatternden Ärmeln hingen rote Flammen und verschränkten sich, und auf ihnen waren goldene Muster eingeprägt, die eine purpurrote und magische Farbe entzündeten. Die durch die verdichtete Dämonenkraft geformten Irrlichter brüllten und die wilden Flammen erschütterten die Berge. Dämonen und Geister, die aus dem Fegefeuer zurückgekehrt waren, bestrafen wir gemeinsam die Eindringlinge. [Exklusiver dynamischer Avatar-Rahmen·Blazing Flame Bailian] [Exklusive Illustration·Firework General Soul] [Biografie-Wertschätzung] [So erhalten Sie] Ibaraki Dojis Kollektions-Skin·Blazing Flame Bailian wird nach der Wartung am 28. Dezember im Skin-Shop erhältlich sein.

Die Lösung für das Discuz-Hintergrund-Login-Problem wird aufgezeigt. Mit der rasanten Entwicklung des Internets ist die Website-Erstellung immer häufiger geworden, und Discuz wurde als häufig verwendetes Forum-Website-Erstellungssystem bevorzugt viele Webmaster. Gerade aufgrund seiner leistungsstarken Funktionen stoßen wir jedoch manchmal auf Probleme bei der Verwendung von Discuz, wie z. B. Probleme bei der Anmeldung im Hintergrund. Heute werden wir die Lösung für das Discuz-Hintergrund-Login-Problem enthüllen und konkrete Codebeispiele bereitstellen. Wir hoffen, den Bedürftigen zu helfen.

Kürzlich haben mich einige Freunde gefragt, wie man sich bei der Kuaishou-Computerversion anmeldet. Hier ist die Anmeldemethode für die Kuaishou-Computerversion. Schritt 1: Suchen Sie zunächst im Browser Ihres Computers nach der offiziellen Website von Kuaishou auf Baidu. Schritt 2: Wählen Sie das erste Element in der Suchergebnisliste aus. Schritt 3: Nachdem Sie die Hauptseite der offiziellen Website von Kuaishou aufgerufen haben, klicken Sie auf die Videooption. Schritt 4: Klicken Sie oben rechts auf den Benutzer-Avatar. Schritt 5: Klicken Sie auf den QR-Code, um sich im Popup-Anmeldemenü anzumelden. Schritt 6: Öffnen Sie dann Kuaishou auf Ihrem Telefon und klicken Sie auf das Symbol in der oberen linken Ecke. Schritt 7: Klicken Sie auf das QR-Code-Logo. Schritt 8: Nachdem Sie auf das Scan-Symbol in der oberen rechten Ecke der Benutzeroberfläche „Mein QR-Code“ geklickt haben, scannen Sie den QR-Code auf Ihrem Computer. Schritt 9: Melden Sie sich abschließend bei der Computerversion von Kuaishou an

Wie melde ich mich mit Quark bei zwei Geräten an? Quark Browser unterstützt die gleichzeitige Anmeldung bei zwei Geräten, aber die meisten Freunde wissen nicht, wie sie sich mit Quark Browser bei zwei Geräten anmelden können zu zwei Geräten. Interessierte Benutzer kommen vorbei und schauen sich die grafischen Tutorials an! Tutorial zur Quark Browser-Nutzung Quark, wie man sich bei zwei Geräten anmeldet 1. Öffnen Sie zunächst die Quark Browser-APP und klicken Sie auf der Hauptseite auf [Quark Network Disk] 2. Rufen Sie dann die Quark Network Disk-Benutzeroberfläche auf und wählen Sie die Dienstfunktion [Mein Backup]. 3. Wählen Sie abschließend [Gerät wechseln], um sich bei zwei neuen Geräten anzumelden.

GitHubCopilot ist die nächste Stufe für Programmierer mit einem KI-basierten Modell, das Ihren Code erfolgreich vorhersagt und automatisch vervollständigt. Möglicherweise fragen Sie sich jedoch, wie Sie dieses KI-Genie auf Ihr Gerät bringen können, damit das Codieren noch einfacher wird! Die Verwendung von GitHub ist jedoch nicht gerade einfach und der anfängliche Einrichtungsprozess ist schwierig. Aus diesem Grund haben wir dieses Schritt-für-Schritt-Tutorial zur Installation und Implementierung von GitHub Copilot in VSCode unter Windows 11, 10 erstellt. So installieren Sie GitHubCopilot unter Windows. Dieser Prozess umfasst mehrere Schritte. Befolgen Sie jetzt die folgenden Schritte. Schritt 1 – Auf Ihrem Computer muss die neueste Version von Visual Studio installiert sein

Baidu Netdisk kann nicht nur verschiedene Softwareressourcen speichern, sondern diese auch mit anderen teilen. Es unterstützt die Multi-Terminal-Synchronisierung. Wenn auf Ihrem Computer kein Client heruntergeladen wurde, können Sie die Webversion aufrufen. Wie melde ich mich also bei der Baidu Netdisk-Webversion an? Werfen wir einen Blick auf die ausführliche Einführung. Anmeldeeingang für die Webversion von Baidu Netdisk: https://pan.baidu.com (Kopieren Sie den Link zum Öffnen in den Browser) Einführung in die Software 1. Teilen Bietet eine Dateifreigabefunktion, Benutzer können Dateien organisieren und sie mit bedürftigen Freunden teilen. 2. Cloud: Es beansprucht nicht zu viel Speicher. Die meisten Dateien werden in der Cloud gespeichert, wodurch effektiv Platz auf dem Computer gespart wird. 3. Fotoalbum: Unterstützt die Cloud-Fotoalbum-Funktion, importiert Fotos auf die Cloud-Festplatte und organisiert sie dann, damit jeder sie sehen kann.
