Heim > Artikel > WeChat-Applet > Das WeChat-Applet realisiert die logische Anordnung der Anmeldefunktion
Damit jeder das WeChat-Applet besser entwickeln kann, teilt Ihnen dieser Artikel hauptsächlich die logische Anordnung der WeChat-Applet-Anmeldung mit, in der Hoffnung, allen zu helfen.
Registrieren/Anmelden
Mini Terminal" style="margin: 0.8em 0px; padding: 0px; box-sizing: border-box; ; Zeilenhöhe: 1,3 em; Schriftgröße: 2,13 em; wird an einen eigenen Server übergeben.
Die zu übertragenden Informationen haben 7 Parameter:Serverseitige Verarbeitungslogik
appid 小程序唯一标识 secret 小程序的 app secret js_code //wx.login登录时获取的 code,用于后续获取session_key //下面两个参数用户服务器端签名校验用户信息的 signature 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。 rawData 不包括敏感信息的原始数据字符串,用于计算签名。 //下面两个参数是用于解密获取openId和UnionId的 encryptedData 包括敏感数据在内的完整用户信息的加密数据 iv 加密算法的初始向量 当然,可以精简为以下三个参数. 其余的签名校验的参数可省略,而appid和secret可以直接写在服务器. js_code // wx.login登录时获取的 code,用于后续获取session_key encryptedData 包括敏感数据在内的完整用户信息的加密数据 iv 加密算法的初始向量
Zugehörige Informationen Nach der Übertragung an den Server
1. Gehen Sie zuerst zum WeChat-Server, um den Sitzungsschlüssel gemäß dem js_code abzurufen
2 (Dieser Schritt kann weggelassen werden) Verwenden Sie sha1 (rawData + Sitzungsschlüssel ), um die Zeichenfolge abzurufen und den Signaturwert zu beurteilen. Sind sie gleich? Wenn sie gleich sind, sind die Benutzerinformationen korrekt und Sie können mit dem nächsten Schritt fortfahren. Wenn sie unterschiedlich sind, wurden die Benutzerinformationen manipuliert oder sind abgelaufen .3. Entschlüsseln Sie es dann selbst gemäß dem Entschlüsselungsalgorithmus (die Eingabeparameter sind appId, sessionKey, cryptodata, iv, Geben Sie ein jsonObj zurück), rufen Sie Informationen wie openId und unionId ab und führen Sie serverseitige Registrierungs-/Anmeldevorgänge durch .
4. Nachdem die Registrierungs-/Anmeldelogik abgeschlossen ist, geben Sie die Sitzungs-ID (oder ein anderes Token) und die Benutzerinformationen unseres Servers an den Client zurück.
Unter anderem lautet die Anforderung des Servers, den Sitzungsschlüssel zu erhalten:
(Kleinbuchstaben bedeuten „fest“, Großbuchstaben „zu ersetzen“)
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
Zurück :
//正常返回的JSON数据包 { "openid": "OPENID", "session_key": "SESSIONKEY" "expires_in": 2592000 } //错误时返回JSON数据包(示例为Code无效) { "errcode": 40029, "errmsg": "invalid code" }
https://mp weixin.qq.com/debug/wxadoc/dev/api/signature.html
Hinweis : Der Beispielcode enthält Node, C++, PHP, Python, aber nicht Java.
Erfordert einen Server. Zurückgegebene Informationen:
SessionId/Token-Anmeldestatus-ID
userInfo: jsonObject, das des Benutzers Informationen auf unserer Plattform, deren Inhalt derselbe ist wie der, der von der getPersonalInfo-Schnittstelle zurückgegeben wird.
Zuletzt kapseln Sie den Anmeldevorgang in eine Methode und rufen ihn bei Bedarf auf
//最终供外面调用的方法 function login(){ console.log('logining..........'); //调用登录接口 wx.login({ success: function (e) { console.log('wxlogin successd........'); var code = e.code; wx.getUserInfo({ success: function (res) { console.log('wxgetUserInfo successd........'); var encryptedData = encodeURIComponent(res.encryptedData); thirdLogin(code,encryptedData,res.iv);//调用服务器api } }) } }); } function thirdLogin(code,encryptedData,iv){ var url = "eeee/xxx/login/ttttt"; var params = new Object(); params.code = code; params.encryptedData = encryptedData; params.iv =iv; buildRequest(new Object(),url,params,{ onPre: function(page){}, onSuccess:function (data){ console.log('my login successd........'); console.log(data); getApp().globalData.session_id = data.session_id; getApp().globalData.uid = data.uid; getApp().globalData.isLogin = true; }, onError : function(msgCanShow,code,hiddenMsg){ } }).send(); }So erhalten Sie Benutzerinformationen über das WeChat-AppletEine Zusammenfassung der Probleme, die bei der Entwicklung von WeChat-Miniprogrammen aufgetreten sindEine WeChat-Miniprogrammversion der Zhihu-Beispielfreigabe
Das obige ist der detaillierte Inhalt vonDas WeChat-Applet realisiert die logische Anordnung der Anmeldefunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!