- 当前 Bug 的表现(可附上截图)
调用授权登陆成功后,云控制台还是显示未授权
- 预期表现
云控制台正常显示已授权
- 复现路径
- 提供一个最简复现 Demo
<button open-type="getUserInfo"
bindgetuserinfo="onGetUserInfo" class="userinfo-nickname" wx:else>
授权登录
</button>
js:
onGetUserInfo: async function(e) {
// console.log('===')
if (!this.logged && e.detail.userInfo) {
console.log(e.detail)
this.setData({
logged: true,
avatarUrl: e.detail.userInfo.avatarUrl,
userInfo: e.detail.userInfo
})
app.globalData.nickName = e.detail.userInfo.nickName
// 需要调用云函数,因为本地拿不到openId
await wx.cloud.callFunction({
name: 'addUserInfo',
data:{
userInfo: this.data.userInfo,
},
success: res => {
if (res.result.status == 1) {
// 设置全局的openId
app.globalData.openId = res.result.openId
}
}
})
}
}
但是在开发工具保存一次代码,控制台,就显示的授权成功
但是在开发工具保存一次代码,控制台,就显示的授权成功
---
所以是点击了 open-type=getUserInfo 的 button 并点击授权后,在控制台是显示授权成功了吗?
实际上你根本不需要纠结云控制台有没有显示授权成功,前端授权成功,后台能正常拿到openId就行了
是的,现在不纠结了。一开始遇见的时候,还以为是问题
我只能说。。。。写程序搞开发不适合你。。。
额,那先讲一下,为什么不行吧。
先帮我解决了疑问。
我这刚进这门槛,被你这打击的,信心减了一半。。。
所以是点击了 open-type=getUserInfo 的 button 并点击授权后,在控制台是显示授权成功了吗?
---
点击了授权,在控制台没有显示授权成功。
但是在开发工具,保存一次代码,再查看控制台,就显示授权成功了。
然后,我翻阅文档,发现,上述场景,点击一次编译,也会授权成功。
再然后,发现,在手机端,第一次进入小程序,授权成功后,后台不会显示授权成功。再过一段时间,再次打开小程序,它会重新加载(类似与开发工具的保存和编译?)。翻看一下控制台,发现授权成功了。 --- 这里就不明白了,因为在重新加载的时候,调用了wx.getSetting和wx.getUserInfo,然后,我在“点击了open-type=getUserInfo 的 button 并点击授权后”的逻辑代码里,也就是onGetUserInfo方法里,也调用了wx.getSetting和wx.getUserInfo,可是第一次授权之后,控制台还是不显示授权。
对于上边的情况,有点难理解,不知道为什么。
还请,解答一下