1. 微信小程序的登录流程 appid
1==> 需要appid,当你开发一个小程序的时候,
都会有一个appid,每一个小程序对应一个appid;
所以这个appid是前端是可以获取的哈;
2. 如何获取code,code是由时效的哈,需要注意一下
code的时效有5分钟,在用户点击登录授权的时候,通过回调函数来解决。
还有一种方式:在点击按钮的时候,
调用uni.login({ })在成功函数去获取用户的基本信息
uni.login({
success(res) {
console.log(res.code);//输出来的是一个对象
}
})
输出来的内容
/**
code: "043qFf1w34Nl1W2dGK1w38ltyD2qFfXXX"
errMsg: "login:ok"
**/
3. 通过接口获取reqId
reqId 是后端返回的;通过appid和code去换取reqId;
appId: "wx2f0c2f7bb65XXXX"
code: "0533mh1w3xKo1W2VNU2w3Bq1D623mh1h"
将appId和code作为参数获取reqId
4. 获取当前登录人的基本信息
<button open-type="getUserInfo" @getuserinfo="getuserinfo">
获取用户信息
</button>
//下面这个写法,解决了code的时效问题,
getuserinfo() {
uni.login({
provider: 'weixin',
success: function (loginRes) {
console.log('loginRes',loginRes.code);//获取的是code
// 获取用户信息
uni.getUserInfo({
provider: 'weixin',
success: function (infoRes) {
console.log('用户授权的一些基本信息:' , infoRes);
}
});
}
});
},
4.获取手机号
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信手机号一键绑定</button>
getPhoneNumber(e) {
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
console.log('用户拒绝提供手机号');
} else {
console.log('用户同意提供手机号');
uni.login({
provider: 'weixin',
success({errMsg,code}) {
if (errMsg == "login:ok") {
//解密手机号需要的参数
let params = {
code: code,
iv: e.detail.iv,
encryptedData: e.detail.encryptedData,
}
//请求交互解密手机号
}
}
});
}
}