文章目录
前言 微信小程序登录授权与授权手机号
一、登录授权
1. 发送 res.code 到后台换取 openId, sessionKey
app.js 如下(示例):
wx.login({
success: res => {
if (res.code) {
console.log(res.code)
// 发送 res.code 到后台换取 openId, sessionKey, unionId
api.wxLogin({ data: res.code }).then((res) => {
// 自己封装的方法,其他文章写了,不懂得可以看看
if (res.status == '0') {
//存储到缓存,授权手机号的要用到
wx.setStorageSync('session_key', res.result.session_key)
wx.setStorageSync('openid', res.result.openid)
} else {
thiswx.showToast({
title: '请重新退出在登陆',
})
}
}
)
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
})
二、授权手机号
官方规定 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发 所以要提前写一个btton
index.wxml:
<button class="button green "
bindtap="isok" open-type="getPhoneNumber"
bindgetphonenumber="getPhoneNumber">授权</button>
index.js:
getPhoneNumber(e) {
console.log(e.detail.code)
// 打印 code: "" 一定一定要注意基础库的版本一定要和官方的一致,要不然可能会得不到code,我的是2.23.2
if (e.detail.iv == null || e.detail.encryptedData == null) {
wx.showToast({
title: "授权手机号失败,请重新授权!",
icon: '',
})
return false
}
if (e.detail.errMsg == "getPhoneNumber:ok") {
wx.showToast({
title: "授权成功!",
icon: 'success',
})
api.gePhone().then((res)=>{
console.log(res)
}
}
},
总结
如果有什么问题请多多指教。