本文編輯: 大妖怪瀏覽 10900
版權所有,嚴禁轉載
接口 | 說明 |
---|---|
wx.login | 調用接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數據的加解密通訊需要依賴會話密鑰完成 |
wx.checkSession | 檢查登錄態是否過期 |
wxml
<view>
<button bindtap="login">登錄</button>
</view>
js
var app = getApp()
Page({
data: {
},
onLoad: function () {
},
login:function(){
wx.login({
success: function(res) {
if (res.code) {
console.log(res.code);
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid:'你的appid',
secret:'你的secret',
js_code:res.code,
grant_type:'authorization_code'
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'Content-Type': 'json'
},
success: function(res){
console.log("openid:"+res.openid);
console.log("session_key:"+res.session_key);
},
})
} else {
console.log('獲取用戶登錄態失敗!' + res.errMsg)
}
}
});
}
})
【wx.login】:【調用接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數據的加解密通訊需要依賴會話密鑰完成】
參數 | 類型 | 必填 | 描述 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
success返回參數說明:
參數名 | 類型 | 說明 |
---|---|---|
errMsg | String | 結果 |
code | String | 用戶允許登錄后,回調內容會帶上 code(有效期五分鐘),開發者需要將 code 發送到開發者服務器后臺,使用code 換取 session_key api,將 code 換成 openid 和 session_key |
//app.js
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
//發起網絡請求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('獲取用戶登錄態失敗!' + res.errMsg)
}
}
});
}
})
【wx.checkSession】:【檢查登錄態是否過期】
參數 | 類型 | 必填 | 描述 |
---|---|---|---|
success | Function | 否 | 接口調用成功的回調函數,登錄態未過期 |
fail | Function | 否 | 接口調用失敗的回調函數,登錄態已過期 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
wx.checkSession({
success: function(){
//登錄態未過期
},
fail: function(){
//登錄態過期
wx.login()
}
})
bug&tip:
1.bug: iOS/Android 6.3.30,在 App.onLaunch 調用 wx.login 會出現異常;
2.tip:’https://api.weixin.qq.com‘ 請求應吧code傳到開發者服務器后端,在后端完成請求,示例不方便因此放到了前端僅做示例;