button 按钮吊起授权方法
<button
open-type="getPhoneNumber"
class="getPhoneNumber"
@getphonenumber="decryptPhoneNumber"
>
手机号授权登录
</button>
async decryptPhoneNumber({ detail }) {
if (!detail.code) {
this.handleShowToast("用户拒绝授权");
return;
}
const userInfo = await this.getOpenId();
const { statusCode, result, message } = await api.login({
code: detail.code,
...userInfo
});
if (statusCode == 200) {
uni.setStorageSync("accessToken", result.accessToken);
uni.setStorageSync("phone", result.phone);
this.isLogin = true;
} else {
this.handleShowToast(message);
}
}
getOpenId() {
return new Promise(resolve => {
uni.login({
provider: "weixin", // 使用微信登录
success: function (loginRes) {
api.weappLogin({
code: loginRes.code
}).then(response => {
// resolve(response.result.openid);
uni.getUserInfo({
provider: "weixin",
success: function (infoRes) {
resolve({
openid: response.result.openid,
nickName: infoRes.userInfo.nickName || "微信用户",
headUrl: infoRes.userInfo.avatarUrl
});
}
});
});
}
});
});
},
handleShowToast(msg) {
uni.showToast({
title: msg,
duration: 2000,
icon: "none"
});
},