注意
在回调中调用wx.login登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行login
;或者在回调中先使用checkSession
进行登录态检查,避免login
刷新登录态。
这句话很重要,为了避免login刷新登陆状态,需要提前获取code,关键怎么获取
Page({ onLoad(){//onload 先获取codethis.getLogin();},//获取codegetLogin(){//code获取成功,保存为当前页面的全局变量codewx.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就不会刷新登陆状态