需求:打开页面,判断用户是否登录,未登录的话,自定义弹框提醒用户登录,已登录的话,展示用户信息

1: wxml 里面 自定义弹框

<view class="login" wx:if="{{!hasUserInfoStatus}}" catchtouchmove='true'>
    <view class="mask"></view>
    <view class="d-login-popup">
      <text class='d-login-popup-text'>微信手机号授权</text>
      <image class='d-login-popup-img' src='../../../../assets/images/d_login_img.png'></image>
      <text class='d-login-popup-text'>允许登录优蓝招聘</text>
      <button class='cancel' bindtap='cancelUserinfo'>取消</button>
      <button class='sure' open-type="getUserInfo" bindgetuserinfo="getUserInfo">允许</button>
    </view>
  </view>

2: data 里面   hasUserInfoStatus 变量 表示是否显示自定义弹框

data: {
    hasUserInfoStatus: true,
}

3: onshow 里面判断用户是否登录。已登录,自定义弹框隐藏。未登录,自定义弹框显示,用户通过点击按钮,去触发 授权弹框显示

onShow() {
    wx.login({
      success: res => {
        console.log('login', res)
        this.getInfo(res.code);
      }
    });
  }, 
  getInfo: function (code) {
    let _self = this;
    wx.request({
      url: api + '/api/miniProgramController/decodeUserInfo?code=' + code,
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        let openid = res.data.openid
        let unionid = res.data.unionid
        _self.setData({
          openId: openid
        })
        app.globalData.openId = openid
        app.globalData.unionId = unionid
        wx.request({
          url: api + '/rest/v1/wxLogin/isLogin/' + openid,
          data: {},
          header: {
            'content-type': 'application/json'
          },
          method: 'POST',
          success: function (suc) {
            if (suc.data.success == true) { // 已登录
              app.globalData.hasUserInfoStatus = true;
              _self.setData({
                hasUserInfoStatus: true
              })
              if (suc.data.data !== '') {
                app.globalData.ylUserId = suc.data.data
              }
              _self.getComInfo()
            } else { // 未登录
              app.globalData.hasUserInfoStatus = false;
              _self.setData({
                hasUserInfoStatus: false
              })
              app.globalData.ylUserId = ''
            }
          }
        })
      }
    })
  },

4: 自定义弹框显示,用户点击 允许 按钮,触发 getUserInfo 函数, 点击 取消 按钮,触发 cancelUserinfo 函数  

getUserInfo: function () { 
    let _self = this;
    wx.getSetting({ // 获取用户已经授权的权限
      success(res) {
        console.log(res)
        if (res.authSetting['scope.userInfo']) { // 点击了 ‘允许’按钮
          // 已经授权,可以直接调用 getUserInfo 获取头像昵称
          wx.getUserInfo({
            success: function (res) { }
          })
          wx.navigateTo({
            url: '/pages/newLogin/newLogin?formUser=true' // 跳转到新页面
          })
        } else { // 点击了 ‘拒绝’按钮
          wx.switchTab({
            url: '/pages/index/index',
          })
        }
      }
    })
  },
  cancelUserinfo(){ 
    wx.switchTab({
      url: '/pages/index/index', // 跳转到首页
    })
  },