1. Anwendung und Konfiguration der appID1. So erhalten Sie die App-IDMelden Sie sich bei der öffentlichen WeChat-Plattform an. Offizieller Website-Link: https://mp.weixin.qq.com/ Beim ersten Mal müssen Sie auf die Schaltfläche „Registrieren“ klicken, um sich zu registrieren. Wenn Sie ein Konto haben, scannen Sie es einfach und melden Sie sich an. Link zur offiziellen Website des Miniprogramms: 2. AppID-KonfigurationGeben Sie die WeChat-Applet-ID ein, die Sie in manifest.json beantragt haben 2. Erfassung grundlegender Benutzerdaten
2.1. Erfassung von BenutzerinformationenMit uni.getUserProfile können Sie eine Benutzerautorisierung anfordern, um Benutzerinformationen abzurufen, oder Sie können uni.getUserInfo verwenden, um Nach erfolgreicher Autorisierung befinden sich die erhaltenen Benutzerinformationen in userInfo: Seitenabschnitte: <button class="login-btn" type="primary" @click="getUserInfo"> WeChat-Benutzer können sich mit einem Klick anmelden</button> js-Teil: Methoden: { getUserInfo() { uni.getUserInfo({ Anbieter: 'weixin', Erfolg: (res) => { console.log('getUserInfo', res); }, }); }, } Erhaltene Benutzergrunddaten (ohne OpenID = „eindeutige WeChat-Benutzerkennung“) 2.2. Benutzerinformationen abrufen 2Mit uni.getUserInfo können Sie die Benutzerberechtigung zum Abrufen von Benutzerinformationen anfordern. Die Seite ist dieselbe, der js-Teil: getUserInfo() { uni.getUserProfile({ desc: 'Nach dem Einloggen können Sie Daten synchronisieren', Sprache: 'zh_CN', Erfolg: (res) => { console.log('getUserProfile', res); }, }); }, Erhaltene Benutzergrunddaten (ohne OpenID = „eindeutige WeChat-Benutzerkennung“) Zusammenfassung: Die von den beiden APIs uni.getUserProfile und uni.getUserInfo erhaltenen Benutzerdaten sind grundsätzlich identisch und verfügen beide nicht über „openid=》eindeutige WeChat-Benutzerkennung“. 3. Login-API aufrufen3.1. Anmelde-API Verwenden Sie die Methode uni.login, geben Sie „weixin“ als Providerparameter ein, und wenn im erfolgreichen Rückgabewert errMsg = „login:ok“ lautet, bedeutet dies Erfolg. 3.2. Beispielcodeuni.login({ Anbieter: 'weixin', Erfolg: (res) => { console.log('res-login', res); dieser.Code = res.Code; Konsole.log('Code', Res.Code); wenn (res.errMsg == 'login:ok') { //TODO Code abrufen und die Backend-Schnittstelle mit Code-Parameter aufrufen} 4. Erhalt eindeutiger Identifikationsinformationen4.1. Offizielle Website-DokumentationDas offizielle Website-Dokument verwendet den erhaltenen Code, um die WeChat-Anmeldeoberfläche anzufordern und OpenID und Sitzungsschlüssel abzurufen. 4.2. Schnittstellenbeschreibung Anforderungsmethode: GET
5. Benutzer an die Anmeldung binden
5.1. Codebeispiele (ungepackt)Frontend-Teil: /** * * Benutzerinformationen abrufen */ getUserInfo() { // Ladebox anzeigen uni.showLoading({ Titel: 'Wird geladen', }); uni.getUserProfile({ desc: 'Nach dem Einloggen können Sie Daten synchronisieren', Erfolg: async (Objekt) => { konsole.log('obj', obj); //Aktion aufrufen und Login-Schnittstelle anfordern // warte auf this.login(obj); uni.login({ Anbieter: 'weixin', Erfolg: (res) => { console.log('res-login', res); dieser.Code = res.Code; Konsole.log('Code', Res.Code); wenn (res.errMsg == 'login:ok') { uni .Anfrage({ URL: 'http://127.0.0.1:8080/wxh5/wx/user/' + 'wx55822xxxx75e422' + '/Login/', Daten: { Code: dieser.Code, }, }) .then((res) => { //Nachdem Sie OpenID und Session_k erhalten haben, Ihre eigene Logik console.log('Autorisierte Anmeldung', res[1].data); Konsole.log(res[1].data.openid); Konsole.log(res[1].data.session_key); // Tu etwas................. }); Konsole.log('res', res); } }, }); }, fehlgeschlagen: () => { uni.showToast({ Titel: 'Autorisierung storniert', Symbol: „Fehler“, Maske: wahr, }); }, vollständig: () => { //Ladevorgang ausblenden uni.hideLoading(); }, }); }, Backend @GetMapping("/login") öffentliche String-Anmeldung(@PathVariable String-App-ID, String-Code) { wenn (StringUtils.isBlank(code)) { returniere „leeren Jscode“; } endgültiger WxMaService wxService = WxMaConfiguration.getMaService(appid); versuchen { WxMaJscode2SessionResult-Sitzung = wxService.getUserService().getSessionInfo(Code); dies.logger.info(session.getSessionKey()); Dies.logger.info(session.getOpenid()); //TODO kann seine eigene Logik hinzufügen und geschäftsbezogene Daten zuordnen return JsonUtils.toJson(session); } Fang (WxErrorException e) { dieser.logger.error(e.getMessage(), e); gibt e.toString() zurück; } } 5.2. Codebeispiele (Verpackung)/** * * Benutzerinformationen abrufen */ getUserInfo() { // Ladebox anzeigen uni.showLoading({ Titel: 'Wird geladen', }); uni.getUserProfile({ desc: 'Nach dem Einloggen können Sie Daten synchronisieren', Erfolg: async (Objekt) => { // diese.Benutzerinfo = obj.Benutzerinfo; //Aktion aufrufen, um Login-Schnittstelle anzufordern uni.login({ Anbieter: 'weixin', Erfolg: async (res) => { dieser.Code = res.Code; // console.log('Anmelden, um Code zu erhalten', res.code); wenn (res.errMsg == 'login:ok') { warte auf diese.loginAuth({ Benutzerprofil: obj, Anwendungs-ID: „wx558xxxxxxxxxxxxxxx2“, Code: dieser.Code, }); } }, }); }, fehlgeschlagen: () => { uni.showToast({ Titel: 'Autorisierung storniert', Symbol: „Fehler“, Maske: wahr, }); }, vollständig: () => { //Ladevorgang ausblenden uni.hideLoading(); }, }); }, }, Benutzer.js /** * Autorisierte Anmeldung durch WeChat-Benutzer mit App-ID- und Code-Parametern. Aufruf der Backend-Schnittstelle zum Abrufen der OpenID */ Exportfunktion loginAuth(Daten) { Rückgabeanforderung({ URL: '/wx/Benutzer/' + Daten.App-ID + '/Login/', Daten: { Code: Datencode, }, }); } Vuex-Benutzermodul (user.js) // Autorisierte Anmeldung durch WeChat-Benutzer mit App-ID- und Code-Parametern. Aufruf der Backend-Schnittstelle zum Abrufen der OpenID async loginAuth(Kontext, Daten) { console.log('Daten', Daten); const userInfo = Daten.Benutzerprofil; const { Inhalt: res } = warte auf loginAuth({ appid: Daten.appid, Code: Datencode, }); // Analysieren Sie das vom Backend gesendete JSON-Objekt const userAuthInfo = JSON.parse(res); const openid = userAuthInfo.openid; // console.log('sessionKey', userAuthInfo.sessionKey); Konsole.log('openid', openid); // In Vuex speichern und committen this.commit('Benutzer/setOpenid', userAuthInfo.openid); this.commit('Benutzer/setUserInfo', JSON.parse(userInfo.rawData)); }, 6. Open-Source-Projektadresse6.1. FrontendApplet-Einfrieren 6.2. Backendweixin-java-miniapp Dies ist das Ende dieses Artikels über die autorisierte Anmeldung beim Uni-App WeChat-Applet. Weitere relevante Inhalte zur autorisierten Anmeldung beim Uni-App WeChat-Applet finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Einführung in Container-Datenvolumes in Docker
Anpassen von Bildern mit Dockerfile Unter Bildanp...
1. Zeigen Sie die Dateien oder Verzeichnisse im V...
In diesem Artikel wird die Verwendung und Install...
Inhaltsverzeichnis Vorwort Die Rolle des Schlüsse...
Dieser Artikel stellt kurz die Beziehung zwischen...
Inhaltsverzeichnis MySQL Inner Join, Left Join, R...
Inhaltsverzeichnis 1. Kommunikationsmethode zwisc...
Bei der tatsächlichen Verwendung ist es häufig er...
Inhaltsverzeichnis Vorwort Beziehungen zwischen v...
Elasticsearch erfreut sich derzeit großer Beliebt...
Inhaltsverzeichnis Vorwort SQL-Anweisungsoptimier...
Ich möchte eine Situation erreichen, in der die B...
So installieren und konfigurieren Sie mysql-5.7.5...
Docker installieren Sie müssen Docker installiere...
Installieren Stellen Sie sicher, dass Ihr Benutze...