通过调用wx.login获取code,调用 wx.getUserInfo获取encryptedData和iv
getUserInfo(cb){
wx.login({
success: log_res => {
wx.getUserInfo({
withCredentials:true,
success:res_user => {
if(log_res.code){
//调用以下方法
getTocken(log_res.code,res_user.encryptedData,res_user.iv);
}else {
console.log('获取用户登录态失败!'+log_res.errMsg)
}
}
})
}
})
function getTocken(code,encryptedData,iv){
Promisify.httpsPromisify(wx.request)({
url: ' ',
header: {
"Content-Type":"application/x-www-form-urlencoded"
},
method:'GET',
data:{
code:code,
encryptedData:encryptedData,
iv:iv
}
}).then(function (res) {
console.log(res)
wx.setStorageSync('tocken', res.tocken)
}.bind(this))
}
提供的code+appid+appsecrect的获取以下信息
(
[session_key] => xxxxxxx
[expires_in] =>xxxxx
[openid] => xxxxxxxx
[unionid] => xxxxxxxx
)
服务器通过解密 encryptData 得到如下数据:
{
"openId": "OPENID",
"nickName": "NICKNAME",
"gender": GENDER,
"city": "CITY",
"province": "PROVINCE",
"country": "COUNTRY",
"avatarUrl": "AVATARURL",
"unionId": "UNIONID",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}