免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動(dòng)推薦你的品牌,搶占AI流量入口!  點(diǎn)擊查看

小程序模板網(wǎng)

微信小程序登錄步驟流程(C#)

發(fā)布時(shí)間:2018-02-10 10:58 所屬欄目:小程序開(kāi)發(fā)教程


小程序官方文檔中說(shuō)道:

調(diào)用wx.login接口獲取登錄憑證(code)進(jìn)而換取用戶登錄態(tài)信息,包括用戶的唯一標(biāo)識(shí)(openid)及本次登錄的會(huì)話密鑰(session_key)。調(diào)用wx.getUserInfo接口將返回的數(shù)據(jù)會(huì)包含 encryptedData, iv 等敏感信息。用戶數(shù)據(jù)的加解密通訊需要依賴會(huì)話密鑰完成。

UnionID機(jī)制說(shuō)明:

如果開(kāi)發(fā)者擁有多個(gè)移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用、和公眾帳號(hào)(包括小程序),可通過(guò)unionid來(lái)區(qū)分用戶的唯一性,因?yàn)橹灰峭粋€(gè)微信開(kāi)放平臺(tái)帳號(hào)下的移動(dòng)應(yīng)用、網(wǎng)站應(yīng)用和公眾帳號(hào)(包括小程序),用戶的unionid是唯一的。換句話說(shuō),同一用戶,對(duì)同一個(gè)微信開(kāi)放平臺(tái)下的不同應(yīng)用,unionid是相同的。

小程序登錄主要作用是獲取用戶信息,主要用到兩個(gè)API,一個(gè)是wx.login獲取用戶的jscode,再通過(guò)服務(wù)器端用jscode去獲取用戶的openid與session_key。openid是用戶在小程序公眾平臺(tái)的唯一標(biāo)識(shí),注意,是小程序公眾平臺(tái)內(nèi),而不是所有公眾平臺(tái)內(nèi),即如果在服務(wù)號(hào)或訂閱號(hào)公眾平臺(tái),就可能會(huì)有跟此用戶同樣openid的用戶,如果要微信所有公眾平臺(tái)某個(gè)用戶的唯一標(biāo)識(shí),就只能用unionid了。session_key是用戶的密鑰,用于解密用戶敏感數(shù)據(jù)。另一個(gè)wx.getuserInfo就是為了獲取到用戶的加密敏感數(shù)據(jù)與偏移量iv,偏移量再加上之前的session_key就能解密用戶的敏感數(shù)據(jù)了。

官方提供的登錄流程圖: 

下面是主要步驟流程:

  • 客戶端調(diào)用wx.login獲取code
  • 客戶端調(diào)用wx.request請(qǐng)求把code傳到服務(wù)器后臺(tái)
  • 服務(wù)器后臺(tái)根據(jù)code+appid+appsecret向微信后臺(tái)發(fā)送請(qǐng)求獲取openid+session_key
  • 服務(wù)器后臺(tái)隨機(jī)生成一個(gè)隨機(jī)數(shù)3rd_session(以硬盤(pán)或設(shè)置或日期+rand隨機(jī)函數(shù)生成),以3rd_session為key,openid+session_key為Value存儲(chǔ)起來(lái),并把3rd_session發(fā)送至客戶端,3rd_session所起的作用只是為了驗(yàn)證用戶登錄時(shí)的時(shí)效是否過(guò)期,并不是必須的,如不用驗(yàn)證登錄是否過(guò)期,可不用3rd_session
  • 客戶端獲取到3rd_session后存儲(chǔ)到storage
  • 客戶端調(diào)用wx.getUserInfo獲取用戶敏感數(shù)據(jù)encryptedData和偏移向量IV
  • 客戶端調(diào)用wx.request請(qǐng)求把encryptedData+偏移向量iv+3rd_session傳送到服務(wù)器后臺(tái)
  • 服務(wù)器后臺(tái)根據(jù)3rd_session到緩存中找出session_key
  • 服務(wù)器后臺(tái)根據(jù)session_key+IV解密encryptedData(AES解密三個(gè)參數(shù):密文encryptedData,密鑰session_key,偏移向量iv)

步驟流程結(jié)合的詳細(xì)流程圖: 

小程序客戶端發(fā)起的調(diào)用:

 

  1. 
    wx.login({
    success: function (res) {
    var jscode = res.code;
    wx.getUserInfo({
    success: function (res) {
    var option = {
    url: config.ghost+config.UrlApi.app_userlogin_url,
    method:'POST',
    data: {
    "obj":{
    "encryptedData": res.encryptedData,
    "iv": res.iv,
    "jscode": jscode
    },
    "UserCode": "",
    "EncryptUserCode": config.gencryptCusCode,
    "AppType":config.gapptype,
    "CompanyKey":config.gcompanyKey,
    "ShopID":config.gshopID
    }
    };
    utils.ClientRequest(option,
    function (res) {
    console.log(res);
    if(res.data.Body.Code=="1"){
    //成功
    var resData = res.data.Body.Data;
    //初始化
    that.setConfigUser(resData);
    //把Clientkey存緩存
    storage.setStorageData(config.storageKey.Userkey,resData.clientkey);
    } else{
    console.log(res);
    wx.navigateTo({url: "../loginfail/loginfail"});
    }
    },
    function (res) {
    console.log(res);
    wx.navigateTo({url: "../loginfail/loginfail"});
    }
    );
    },
    fail: function () { // 拒絕操作
    wx.naviga 


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/21916.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢: 點(diǎn)擊咨詢
在線客服