注意
在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login
;或者在回调中先使用 checkSession
进行登录态检查,避免 login
刷新登录态。
这句话很重要,为了避免login刷新登陆状态,需要提前获取code,关键怎么获取
Page({
onLoad(){
//onload 先获取code
this.getLogin();
},
//获取code
getLogin(){
//code获取成功,保存为当前页面的全局变量code
wx.login({
success: res => {
this.setData({code: res.code})
},
fail: res => {
//失败
}
})
},
getPhoneNumber(e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
// 获取用户的session_key、openID以及isRegister(注册情况)
}
})
这时候就可以使用code就不会刷新登陆状态