小程序云开发笔记:判断用户权限,不同权限用户看到不同内容

您所在的位置:网站首页 微信小程序怎么设置管理员 小程序云开发笔记:判断用户权限,不同权限用户看到不同内容

小程序云开发笔记:判断用户权限,不同权限用户看到不同内容

2024-02-04 19:14| 来源: 网络整理| 查看: 265

苦于学习小程序开发时找不到多少有用的博客教程,网上看过很多博客,不是只有几行一笔带过,就是互相都是复制粘贴,甚至全篇复制微信官方文档。

本篇博客是另一篇实战项目博客的拓展,将其中踩过的坑单独拿出来做个总结。有兴趣可以去看看那篇:

小程序实战:推文留言板

实际上此功能可以直接由 JavaScript 实现,如果你要实现的功能复杂,建议不要用本文的方法。

更新了一下代码,发现微信把 getWXContext 接口返回的数据路径变了。

判断用户权限

要判断用户权限,首先得在数据库建立一个集合,比如我这里叫 author,然后在里面添加你想设置成管理员用户的 _openid。 在这里插入图片描述 然后使用云函数返回用户的openid,这个云函数实际就是云开发的模板中的 login 函数。

//cloudfuctions/login/login.js const cloud = require('wx-server-sdk') // 初始化 cloud cloud.init({ // API 调用都保持和云函数当前所在环境一致 env: cloud.DYNAMIC_CURRENT_ENV }) exports.main = (event, context) => { console.log(event) console.log(context) const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, env: wxContext.ENV, } }

再用一个函数调用云函数得到用户的openid,与数据库中的id比较判断是否相等,如果相等,就让页面的 data 中定义的判定权限的变量 authority 为 true:

//判断用户权限 authentication: function () { wx.cloud.callFunction({ name: 'login', complete: res => { db.collection('author').get().then(res2 => { if (res.result.openid === res2.data[0]._openid) { this.setData({ authority: true }) } }) } }) },

然后我在某个时候调用这个函数,就实现了用户的鉴权。

比如我在页面加载时就调用这个函数:

onLoad: function (options) { this.authentication(); },

到这里判断用户权限的功能已经实现,如果用户是设置的管理员,那么他使用小程序时 authority 值为 true。

如何让不同权限用户看到不同内容

我们在上面已经得到,管理员的 authority 值为 true,所以我们利用这个值进行判断即可。

比如在 wxml 中我想让一个 button 只有管理员能看见,那么我们用 wx:if = '{{authority}}' 判断一下用户身份即可。

代码示例:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3