思路:
1.首先获取授权,看看到底有没有这个授权,如果有,那么就不再进行再次请求,如果没有,那么再次请求或者其他的业务逻辑。
2.查看授权信息接口:wx.getSetting(Object object),后面我们具体分析这个接口如何使用
3.通过来调取授权
<button open-type='getUserInfo' bindgetuserinfo="getUserInfo"></button>
业务代码:
获取用户授权信息
// 获取微信授权信息
// getShouquanInfo() {
// let _this = this
// uni.getSetting({
// withSubscriptions: true,
// success: function(res) {
// if (res.authSetting['scope.userInfo']) {
// // console.log('已授权')
// 可以写自己的逻辑代码
// } else {
// // console.log('未授权')
// uni.showToast({
// title: '还未进行授权,请进行微信授权',
// icon: 'none',
// duration: 2000
// })
// // 进入授权界面
//
// if (_this.query != '') {
// uni.navigateTo({
// url: '../gereninfo_shouquan/gereninfo_shouquan'
// })
// } else {
// uni.navigateTo({
// url: '../gereninfo_shouquan/gereninfo_shouquan'
// })
// }
// }
// }
// })
// },
这里我自己写的是进入授权界面,在授权界面内进行授权
GetUserInfo(e) {
let _this = this
_this.flag=true //按钮禁用,禁止一直点击
uni.login({
provider: ‘weixin’,
success: function(res1) {
if (res1.code) {
_this.code = res1.code
// 调取登录接口
wx.getUserInfo({
provider:“weixin”,
success: async function(res) {
// console.log(res)
if (res.userInfo) {
// 把用户信息传递给后台进行登录
if (_this.qrcode != '' && _this.qrcode !=undefined) {
const data = await request({
url: 'login',
method: 'POST',
data: {
code: _this.code,
header_img: res.userInfo.avatarUrl,
nick_name: res.userInfo.nickName,
qrcode: _this.qrcode
}
})
// console.log(data)
let ret = _this.handleData(data)
// console.log(ret)
// 本地存储token
uni.setStorageSync('token', JSON.stringify(ret.token))
uni.switchTab({
url: '../index/index'
})
} else {
const data = await request({
url: 'login',
method: 'POST',
data: {
code: _this.code,
header_img: res.userInfo.avatarUrl,
nick_name: res.userInfo.nickName,
qrcode: ''
}
})
let ret = _this.handleData(data)
// console.log(ret)
// 本地存储token
uni.setStorageSync('token', JSON.stringify(ret.token))
uni.switchTab({
url: '../index/index'
})
}
}
},
fail: function(err) {
console.log(err)
}
})
}
}
})
uni.hideLoading()
_this.flag=false
},
···
如果用户授权,那么就调取wx.login()接口进行登录,获取code,.之后,调取wx.getUserInfo({})接口,获取用户数据。
获取用户数据之后,调用接口接口(自己后台写的),把得到的用户数据传到自己的服务器上进行保存