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
In diesem Artikel gibt es keine Spitzfindigkeiten,...
Die Installation der mysql5.7.18zip-Version unter...
Informationen zu MySQL-Vorgängen abfragen Status ...
Frage Bei der Installation von Docker mithilfe de...
Inhaltsverzeichnis Wie wird das SQL-Protokoll ang...
Inhaltsverzeichnis Vorwort 1. So stornieren Sie e...
Inhaltsverzeichnis 1. Anonyme Slots 2. Benannte S...
Code kopieren Der Code lautet wie folgt: <!DOC...
1. Einführung in Komprimierung und Verpackung All...
In der Datenbank führen sowohl die Schlüsselwörte...
1. Laden Sie centos7 herunter Download-Adresse: h...
Ohne weitere Umschweife Beginnen Sie mit der Aufz...
Mysql mehrere unabhängige Tabellen Abfragedaten u...
Inhaltsverzeichnis Effektanzeige Komponenteneinst...
1 Schritte zur Systeminstallation Betriebssystemv...