小程序完整授权逻辑
- 小程序完整授权逻辑 (防止用户手动修改授权设置与取消授权补救方法)
- scope 列表
- wx.authorize 授权需要用户主动发起,无法直接弹窗
通用授权 (除用户授权以外)
wx.getSetting({
success: (res) => {
// scope 信息可参考 scope 列表
if (!res.authSetting["scope.userLocation"]) {
//地理位置
wx.authorize({
scope: "scope.userLocation",
success: () => {
// 执行方法
},
fail: () => {
wx.showModal({
title: "提示",
content: "授权提示语",
showCancel: false,
success: (sss) => {
if (sss.confirm) {
//跳转去设置
wx.openSetting();
}
},
});
},
});
} else {
// 已授权
// 执行方法
}
},
});
用户信息授权
- wx.getUserInfo 方法获取用户信息,必须是在用户已经授权的情况下调用
wx.getSetting({
success: (res) => {
if (res.authSetting["scope.userInfo"]) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
// 必须是在用户已经授权的情况下调用
wx.getUserInfo({
success: (sss) => {
// encryptedData、iv 为用户加密数据,可交由后端解析出用户的详细数据
console.log(sss.userInfo);
},
});
}
},
});
- button 获取用户信息
<button open-type="getUserInfo" bindgetuserinfo="getAuth" class="btn-wrap">
授权
</button>
getAuth(e) {
let { detail } = e
// encryptedData、iv 为用户加密数据,可交由后端解析出用户的详细数据
// detail['encryptedData']
// detail['iv']
}
encryptedData、iv 敏感数据解析后的 json 数据
{
"openId": "OPENID",
"nickName": "NICKNAME",
"gender": GENDER,
"city": "CITY",
"province": "PROVINCE",
"country": "COUNTRY",
"avatarUrl": "AVATARURL",
"unionId": "UNIONID",
"watermark": {
"appid": "APPID",
"timestamp": TIMESTAMP
}
}
Powered by Waline v2.15.8