微信小程序按钮鉴权

  • 作者:清梦徐徐
  • 时间:2023-11-06 10:15:25
  • 551人已阅读

微信小程序按钮鉴权判断用户是否登录或者是否实名

在微信小程序的开发中可能会遇到鉴权判断是否登录、实名的需求,当用户打开微信小程序的时候,可以看到一些列表信息,但是需要需要限制用户先登录、实名才能进行点击按钮操作。当用户点击按钮的时候就需要提示用户去登录,当这种需求的按钮比较少,只有一个页面的时候,很好办。直接在按钮的方法里面先去判断是否登录或者实名。然后再继续其他操作。显然这种方式只能满足简单的场景。如果每个tabbar页面的按钮都需要那我们的代码将会变得无比臃肿。

那我们在微信小程序中如何实现才能更加方便呢?

app.js:

checkLoginAuth: function (event) {
    if (!this.globalData.isLogin) { // 判断是否登录
      wx.showModal({
        title: '提示',
        content: '你还没有登录哦!是否去登录?',
        success(res) {
          if (res.confirm) {
            wx.reLaunch({
              url: '/pages/login/login',
            })
          }
        }
      })
      return false
    }

    if (!this.globalData.isAuth) { // 判断是否实名
      wx.showModal({
        title: '提示',
        content: '您尚未进行实名认证,请先进行实名认证',
        success(res) {
          if (res.confirm) {
            wx.reLaunch({
              url: '/pages/auth/person/index',
            })
          }
        }
      })
      return false
    }

    var resultArr = getCurrentPages(); // getCurrentPages() 函数获取当前页面栈
    var currentTarget = resultArr[resultArr.length - 1]; // 获取到最后一个(当前页面)
    var fn = event.currentTarget.dataset.event; // 获取wxml中定义的data-event(鉴权之后需要调用的方法名)
    currentTarget[fn](event); // 最后在当前页面栈中调用data-event中的方法,并将wxml中绑定的参数传递下去
  }

wxml:

 <view class="list_item_status list_sign" 
    catchtap="checkLoginAuth"  
    data-event="toSign" 
    data-opened="{{item.opened}}"  
    data-code="{{item.code}}">按钮
 </view> 

当前页面js:

const app = getApp()

Page({
    checkLoginAuth: app.checkLoginAuth,
  data:{},
  toSign(e) {  
         // 其他操作
        wx.navigateTo({
            url: '页面跳转路径',
        })
    },
})

通过这种方式就可以在微信小程序中实现按钮鉴权。

上一篇:图片懒加载

下一篇:微信小程序支付

Top