已经想破脑袋了,还不行,请大神指教
发布于 6 年前 作者 panyang 13962 次浏览 来自 问答
  • 当前 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

         }

       }

     })

   }

}

但是在开发工具保存一次代码,控制台,就显示的授权成功

4 回复

我只能说。。。。写程序搞开发不适合你。。。

但是在开发工具保存一次代码,控制台,就显示的授权成功

所以是点击了 open-type=getUserInfo 的 button 并点击授权后,在控制台是显示授权成功了吗?

实际上你根本不需要纠结云控制台有没有显示授权成功,前端授权成功,后台能正常拿到openId就行了

所以是点击了 open-type=getUserInfo 的 button 并点击授权后,在控制台是显示授权成功了吗?

---


点击了授权,在控制台没有显示授权成功。

但是在开发工具,保存一次代码,再查看控制台,就显示授权成功了。

然后,我翻阅文档,发现,上述场景,点击一次编译,也会授权成功。


再然后,发现,在手机端,第一次进入小程序,授权成功后,后台不会显示授权成功。再过一段时间,再次打开小程序,它会重新加载(类似与开发工具的保存和编译?)。翻看一下控制台,发现授权成功了。 --- 这里就不明白了,因为在重新加载的时候,调用了wx.getSetting和wx.getUserInfo,然后,我在“点击了open-type=getUserInfo 的 button 并点击授权后”的逻辑代码里,也就是onGetUserInfo方法里,也调用了wx.getSetting和wx.getUserInfo,可是第一次授权之后,控制台还是不显示授权。

对于上边的情况,有点难理解,不知道为什么。

还请,解答一下

回到顶部