一、判断用户是否已经授权?
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
console.log('已授权');
} else {
console.log('未授权');
wx.switchTab({
url: '/pages/my/my'
})
}
}
})
如果已经授权就查看本地是否有token
如果有token的话就可以使用token请求其他接口,
如果没有的话就执行登录代码
if (wx.getStorageSync('token')) {
console.log('yes');
}else{
console.log('no');
}
二、如果没有授权
没有授权就跳转到登录页,
<button class="mini-btn" type="primary" size="mini" open-type="getUserInfo" bindgetuserinfo="bindgetuserinfo">立即登录</button>
用户点击立即登录会弹出授权
然后判断用户点的是拒绝还是允许
如果点击的是允许的话就执行登入代码
//登录
async bindgetuserinfo(e) {
if (e.detail.userInfo) {
wx.login({ //获得code码
success(res) {
console.log(res);
request("https://接口地址", {
code: res.code,
autoReg: true //如果是新用户的话自动注册新用户
}, "POST").then(item => {
console.log(item);
wx.setStorage({ //保存token
data: item.data.data.token,
key: 'token',
})
})
}
})
let boo = e.detail.userInfo;
wx.setStorage({
data: boo,
key: 'user',
})
this.setData({
userIcon: boo.avatarUrl,
username: boo.nickName
})
}
},