微信小程序按钮鉴权
- 时间: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: '页面跳转路径',
})
},
})
通过这种方式就可以在微信小程序中实现按钮鉴权。