1:第一步获取code:
// 获取code
getCode() {
return new Promise((resolve, reject) => {
uni.login({
provider: 'weixin',
success: res => {
console.log('code', res.code)
resolve(res.code)
},
fail: reject
})
})
},
// 获取微信用户信息(新版)
getUserProfile() {
const app = this
wx.canIUse('getUserProfile') && wx.getUserProfile({
lang: 'zh_CN',
desc: '获取用户相关信息',
success(res) {
console.log('用户同意了授权');
uni.setStorageSync('userInfo',res.userInfo);
// // 授权成功事件
app.onAuthSuccess(res.userInfo, res.encryptedData, res.iv)
},
fail() {
console.log('用户拒绝了授权')
}
})
},
onAuthSuccess(userInfo, encryptedData, iv){
// 接口
api.LoginMpWx({
code: await app.getCode(),
avatarUrl: userInfo.avatarUrl,
nickname: userInfo.nickName,
encryptedData: encryptedData,
iv: iv,
})
.then(result => {
app.$toast('登陆成功')
uni.navigateBack()
})
.finally(() => app.disabled = false)
}