收藏
回答

wx.login获取不到回应?

调用wx.login后应该可以收到login的返回,但实际只收到了服务器发来的setting,很疑惑?

回答关注问题邀请回答
收藏

6 个回答

  • W、
    W、
    2023-11-06

    首先你这个过不了审核的,目前微信小程序的机制是不允许强制用户登录,

    你这个进入小程序就调用登录接口,会审核失败的。

    其次 this.fetch('user/setting') 是干啥的。返回的数据是什么?
    


    2023-11-06
    有用
    回复
  • 游戏人生
    游戏人生
    2023-11-06

    亮代码? 首先看下res 有收到吗?

    2023-11-06
    有用
    回复 2
    • 阿鹏
      阿鹏
      2023-11-06
      代码贴下面了,res没收到好像,麻烦带佬看看
      2023-11-06
      回复
    • 游戏人生
      游戏人生
      2023-11-06回复阿鹏
      这个没拿到? console log看下?
      2023-11-06
      回复
  • optimistic
    optimistic
    2023-11-06

    走到这里了吧

    2023-11-06
    有用
    回复
  • 一笑皆春
    一笑皆春
    2023-11-06

    啥意思呀,你这代码写的就是先调用接口'user/setting

    2023-11-06
    有用
    回复 2
    • 阿鹏
      阿鹏
      2023-11-06
      怎么说?把login放launch上吗?还是说要在onlauch里加login?带佬
      2023-11-06
      回复
    • 一笑皆春
      一笑皆春
      2023-11-06回复阿鹏
      一步一步的加console.log看看执行到哪里了
      2023-11-06
      回复
  • 阿鹏
    阿鹏
    2023-11-06
    App({
      fetch: require('utils/fetch.js'),
      onLaunch: function() {
        wx.showLoading({
          title: '登录中',
          mask: true
        })
        this.fetch('user/setting').then(data => {
          if (data.isLogin) {
            this.onUserInfoReady()
          } else {
            this.login({
              success: () => {
                this.onUserInfoReady()
              },
              fail: () => {
                this.onLaunch()
              }
            })
          }
        }, () => {
          this.onLaunch()
        })
      },
      login: function(options{
        wx.login({
          success: res => {
            this.fetch('user/login', {
              js_code: res.code
            }).then(data => {
              if (data && data.isLogin) {
                options.success()
              } else {
                wx.hideLoading()
                wx.showModal({
                  title: '登录失败(请使用真实的AppID,并检查服务器端配置)',
                  confirmText: '重试',
                  success: res => {
                    if (res.confirm) {
                      options.fail()
                    }
                  }
                })
              }
            }, () => {
              options.fail()
            })
          }
        })
      },
      userInfoReady: false,
      onUserInfoReady: function() {
        wx.hideLoading()
        if (this.userInfoReadyCallback) {
          this.userInfoReadyCallback()
        } else {
          this.userInfoReady = true
        }
      }
    })
    
    2023-11-06
    有用
    回复 1
    • 大山
      大山
      2023-11-06
      2023-11-06
      回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    2023-11-06

    你代码怎么写的

    2023-11-06
    有用
    回复 1
    • 阿鹏
      阿鹏
      2023-11-06
      在下面贴了,麻烦带佬看看
      2023-11-06
      回复
登录 后发表内容