欧美日韩1234-岳两女共夫互换观看视频-日本不卡一区二区-gogogo高清国语完整-国产区在线-狠久久-男男互操视频-另类国产-欧美人与禽猛交乱配视频-欧美另类一区-久久成人在线视频-国产一级片av-青青草视频播放-欧美三级黄-日日射天天射-在线国产欧美-日韩永久-国产黄色成人-伊人三区-国产午夜精品理论片-999精彩视频-免费看av软件-欧美xxxx喷水-国产蜜臀-美女四肢被绑在床扒衣-日本公妇乱淫-99久久久国产精品无码性

027-81331413

微信小程序api開發(fā)文檔

發(fā)布時(shí)間:2021-04-01 瀏覽:6632

wx.login(OBJECT)


調(diào)用微信小程序接口獲取登錄憑證(code)進(jìn)而換取用戶登錄態(tài)信息,包括用戶的唯一標(biāo)識(shí)(openid) 及本次登錄的 會(huì)話密鑰(session_key)用戶數(shù)據(jù)的加解密通訊需要依賴會(huì)話密鑰完成。


OBJECT參數(shù)說明:

參數(shù)名類型必填說明
successFunction接口調(diào)用成功的回調(diào)函數(shù)
failFunction接口調(diào)用失敗的回調(diào)函數(shù)
completeFunction接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

success返回參數(shù)說明:

參數(shù)名類型說明
errMsgString調(diào)用結(jié)果
codeString用戶允許登錄后,回調(diào)內(nèi)容會(huì)帶上 code(有效期五分鐘),開發(fā)者需要將 code 發(fā)送到開發(fā)者服務(wù)器后臺(tái),使用code 換取 session_key api,將 code 換成 openid 和 session_key

示例代碼:

//app.js App({  onLaunch: function() {    wx.login({      success: function(res) { if (res.code) { //發(fā)起網(wǎng)絡(luò)請(qǐng)求 wx.request({            url: 'https://test.com/onLogin',            data: {              code: res.code            }          })        } else { console.log('獲取用戶登錄態(tài)失敗!' + res.errMsg)        }      }    });  }})

code 換取 session_key

這是一個(gè) HTTPS 接口,開發(fā)者服務(wù)器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對(duì)用戶數(shù)據(jù)進(jìn)行加密簽名的密鑰。為了自身應(yīng)用安全,session_key 不應(yīng)該在網(wǎng)絡(luò)上傳輸

接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

請(qǐng)求參數(shù):

參數(shù)必填說明
appid小程序唯一標(biāo)識(shí)
secret小程序的 app secret
js_code登錄時(shí)獲取的 code
grant_type填寫為 authorization_code

返回參數(shù):

參數(shù)說明
openid用戶唯一標(biāo)識(shí)
session_key會(huì)話密鑰
unionid用戶在開放平臺(tái)的唯一標(biāo)識(shí)符。本字段在滿足一定條件的情況下才返回。

返回說明:

//正常返回的JSON數(shù)據(jù)包 { "openid": "OPENID", "session_key": "SESSIONKEY"  "unionid": "UNIONID" } //錯(cuò)誤時(shí)返回JSON數(shù)據(jù)包(示例為Code無效) { "errcode": 40029, "errmsg": "invalid code" }

wx.checkSession(OBJECT)


通過上述接口獲得的用戶登錄態(tài)擁有一定的時(shí)效性。用戶越久未使用小程序,用戶登錄態(tài)越有可能失效。反之如果用戶一直在使用小程序,則用戶登錄態(tài)一直保持有效。具體時(shí)效邏輯由微信維護(hù),對(duì)開發(fā)者透明。開發(fā)者只需要調(diào)用wx.checkSession接口檢測(cè)當(dāng)前用戶登錄態(tài)是否有效。登錄態(tài)過期后開發(fā)者可以再調(diào)用wx.login獲取新的用戶登錄態(tài)。

OBJECT參數(shù)說明:

參數(shù)名類型必填說明
successFunction接口調(diào)用成功的回調(diào)函數(shù),登陸態(tài)未過期
failFunction接口調(diào)用失敗的回調(diào)函數(shù),登陸態(tài)已過期
completeFunction接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)

示例代碼:

wx.checkSession({  success: function(){ //session 未過期,并且在本生命周期一直有效 },  fail: function(){ //登錄態(tài)過期 wx.login() //重新登錄....  }})

登錄態(tài)維護(hù)

通過wx.login()獲取到用戶登錄態(tài)之后,需要維護(hù)登錄態(tài)。開發(fā)者要注意不應(yīng)該直接把 session_key、openid 等字段作為用戶的標(biāo)識(shí)或者 session 的標(biāo)識(shí),而應(yīng)該自己派發(fā)一個(gè) session 登錄態(tài)(請(qǐng)參考登錄時(shí)序圖)。對(duì)于開發(fā)者自己生成的 session,應(yīng)該保證其安全性且不應(yīng)該設(shè)置較長(zhǎng)的過期時(shí)間。session 派發(fā)到小程序客戶端之后,可將其存儲(chǔ)在 storage ,用于后續(xù)通信使用。

通過wx.checkSession()檢測(cè)用戶登錄態(tài)是否失效。并決定是否調(diào)用wx.login() 重新獲取登錄態(tài)

登錄時(shí)序圖

登錄時(shí)序圖


Bug & Tip

  1. bug: iOS/Android 6.3.30,在 App.onLaunch 調(diào)用 wx.login 會(huì)出現(xiàn)異常;