小程序登陆和使用授权(亲测无效,不用看了,直接看评论)
不想重新写页面引导用户授权,因为官方说明
scope 为 "scope.userInfo" 时,无法弹出授权窗口,请使用<button open-type="getUserInfo"></button>
理一下思路:
- 登陆操作,获取用户openid
- 查询是否授权
- 已经授权,直接获取用户信息
- 未授权,引导用户授权
- 授权成功,重新登陆
- 授权失败,提示用户
1.登陆
这一步目的是为了获取用户的openid
//1.登陆获取用户openid
wx.login({
success: function(resdata) {
if (resdata.code) {
wx.request({
url: appConfig.config.getOpenId,
data: {
//somedata
},
success: function(res) {
//do something
}
})
} else {
that.openAlert();
}
},
fail: function(res) {
that.openAlert();
}
});
2.查看是否授权
//2. 查看是否授权
wx.getSetting({
success: function(res) {
if (res.authSetting['scope.userInfo']) {
//授权了
} else {
//未授权
}
}
})
3.已经授权,获取用户信息
//3. 已经授权,获取用户信息
wx.getUserInfo({
success: function(res) {
that.globalData.userInfo = res.userInfo
console.log(res.userInfo)
}
})
4.未授权,引导用户授权
//4.未授权,引导用户授权
wx.showModal({
title: '用户未授权',
content: '如需正常使用小程序功能,请进行用户授权。',
showCancel: true,
success: function(res) {
if (res.confirm) {
console.log("用户确认授权")
} else {
console.log("用户取消授权")
}
}
})
5.授权成功
//5.授权成功
if (wx.openSetting) {
wx.openSetting({
success: function(res) {
//重新登陆
}
})
}
6.因外部原因授权失败
//6.因外部原因授权失败
else {
wx.showModal({
title: '授权提示',
content: '小程序需要您的微信授权才能使用哦~ 错过授权页面的处理方法:删除小程序->重新搜索进入->点击授权按钮'
})
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。