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
Nach den Änderungen: innodb_buffer_pool_size=576M...
Inhaltsverzeichnis 1. Übersicht 1.1 Verwendung vo...
Die Wirkung dieser Funktion ist ähnlich wie vue的p...
Inhaltsverzeichnis Projekteinführung: Projektverz...
Inhaltsverzeichnis Umfeld Installieren Sie CentOS...
Inhaltsverzeichnis 1. Geltungsbereich 2. Geltungs...
Einführung MySQL erreicht eine hohe Verfügbarkeit...
Inhaltsverzeichnis Vorwort Start React-Lebenszykl...
Jeder, der es braucht, kann darauf zurückgreifen....
Bedürfnisse entdecken Wenn nur ein Teil eines Ber...
Vorwort: Ich bin auf die Anforderung gestoßen, be...
In diesem Tutorial erfahren Sie alles über die In...
Zeigen Sie die IP-Adresse des Containers an docke...
In früheren Blogbeiträgen habe ich mich auf einige...
Fragen zum Webdesign. Können Sie alle beantworten...