1.大多数的小程序中,会有账号和密码登录,有些时候为了方便用户快速登录,会给微信授权登录;
2.在微信授权登录时,会涉及几种情况:
①该用户注册过咱们公司的网站,可以直接登录;
②该用户未注册过咱们公司的网站,咱们需要帮助用户注册,注册完成后再登录;(此法需用户授权获取电话号码)
③可能在某些老版本(long long ago)中,会没有在微信中绑定电话(由于这种情况很少,这里不做考虑);
3.思路:
①通过<button open-type="getPhoneNumber"bindgetphonenumber="getPhoneNumber">,可以拿到加密参数e.detail.iv和e.detail.encryptedData,
②通过登录接口将以上两个加密参数返还给后台,后台解密处理,完成注册登录;
4.代码
①wxml
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信授权登录</button>
②js
getPhoneNumber(e) {
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
if (e.detail.iv && e.detail.encryptedData){
//授权成功,请求接口,将参数返回给后台,后台进行解密
}else{
wx.showToast({
title: '授权失败',
icon: 'none',
duration: 3000
});
}
}
③效果
5.说明:
①button按钮https://developers.weixin.qq.com/miniprogram/dev/component/button.html
②参数返回https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html