收藏
回答

已经想破脑袋了,还不行,请大神指教

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug button 客户端 7.0.1 2.4.3


- 当前 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

         }

       }

     })

   }

}


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

最后一次编辑于  2019-01-01
回答关注问题邀请回答
收藏

4 个回答

  • 邓坤力
    邓坤力
    2019-01-02

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


    ---


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

    2019-01-02
    有用
    回复
  • 微云
    微云
    2019-01-03

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

    2019-01-03
    有用 1
    回复 1
    • irene0_0
      irene0_0
      2019-01-03

      是的,现在不纠结了。一开始遇见的时候,还以为是问题

      2019-01-03
      回复
  • Wormhole
    Wormhole
    2019-01-03

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

    2019-01-03
    有用 1
    回复 1
    • irene0_0
      irene0_0
      2019-01-03

      额,那先讲一下,为什么不行吧。

      先帮我解决了疑问。

      我这刚进这门槛,被你这打击的,信心减了一半。。。

      2019-01-03
      回复
  • irene0_0
    irene0_0
    2019-01-02

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

    ---


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

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

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


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

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

    还请,解答一下

    2019-01-02
    有用
    回复
登录 后发表内容