1 1. 获取code(登陆凭证,用来换取openid及session_key等) 2 wx.login({ 3 success: function(res){ 4 if(res.code){ 5 that.getNeededUserInfo(res.code); 6 }else{ 7 console.log('获取用户登陆态失败!'+res.errMsg); 8 } 9 } 10 }) 11 12 2. 获取用户信息(利用wx.login返回的code获取用户的信息) 13 getNeededUserInfo: function(code){ 14 wx.request({ 15 url: 'https://my.com/login', 16 method: 'POST', 17 data: { 18 code: code // 后端经过这个code去调用微信的接口(https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code),传入参数code、appid、appsecret后获取到微信返回的unionid、openid及session_key等。(而后后端能够直接利用微信返回的信息去关联用户在本身网站的user_id) 19 }, 20 success: function(res){ 21 // 能够返回前端须要的用户信息(包括unionid、openid、user_id等) 22 } 23 }) 24 }
1. 获取code(登陆凭证,用来换取openid及session_key等) wx.login({ success: function(res){ if(res.code){ that.getNeededUserInfo(res.code); }else{ console.log('获取用户登陆态失败!'+res.errMsg); } } }) 2. 获取加密数据和加密算法初始向量 旧版本基础库调取wx.getUserInfo()能够直接获取到微信返回的encryptdata等完整数据,基础库更新以后,须要增长withCredentials属性,并将属性值设置为true时才能够获取到除用户基本信息以外的encryptedData以及iv等数据。 须要注意的是:当withCredentials值为true时,要求此前有调用过wx.login且登陆态还没有过时。 getEncData: function(){ wx.getUserInfo({ withCredentials: true, success: function(res){ that.getNeededUserInfo( code, res.encryptedData, res.encryptedData ); } }) } 3. 获取用户信息(利用wx.login返回的code获取用户的信息) getNeededUserInfo: function(code, enc, iv){ wx.request({ url: 'https://my.com/login', method: 'POST', data: { code: code, encryptedData: enc, iv: iv }, success: function(res){ // 能够返回前端须要的用户信息(包括unionid、openid、user_id等) } }) }