小程序登陆授权记录,我写的走了两次接口,走一次接口也是可以的。
login() { //用户登陆授权
var that = this;
wx.getSetting({ //用户登陆授权
success: res => {
// console.log(res);
wx.login({ //用户登陆获取code传给后台,拿到sessionlkey,和openid,
success: res => {
// console.log(res)
that.setData({
code: res.code
})
app.globalData.request.get({//获取enc iv
code: res.code
}, '获取enc和iv的接口').then(res => {
console.log(res.data)
that.setData({
sessionk: res.data.data.session_key,
openid: res.data.data.openid
})
wx.getUserInfo({ //获取用户信息
lang: "zh_CN",
success: res => {
// console.log(res)
console.log(that.data.sessionk)
console.log(that.data.openid)
app.globalData.request.get({ //向后台发送参数拿到用户信息
openid: that.data.openid,
enc: res.encryptedData,
iv: res.iv,
session_key: that.data.sessionk
}, '获取用户信息的接口').then(res => {
console.log('发送成功')
console.log(res)
wx.showToast({
title: '授权成功',
icon:'none'
})
wx.setStorage({ //用户信息存储到本地
key: 'userinfo',
data: res.data.data,
})
that.onLoad();
}, err => {
console.log(err)
})
// console.log('userinfo' + JSON.stringify(res))
}
})
}, err => {
console.log('发送失败')
})
}
})
}
})
},
在写登陆授权时复制上面代码稍作调整即可(login为button的点击事件,button按钮的opentype必须为userinfo,点击事件必须为bindgetuserinfo)。