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

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

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

小程序实战:推文留言板


实际上此功能可以直接由 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}}' 判断一下用户身份即可。

代码示例:

<button wx:if = '{{authority}}'>只有管理员才能看到这个按钮</button>

这样只有 authority 值为 true 的人这个按钮才会被显示出来,组件的功能也自然普通用户用不了了。其他组件同理,当然你也可以把权限更加细分,原理是一样的。

  • 38
    点赞
  • 236
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
小程序笔记demo是一款基于小程序开发的云笔记应用程序。它可以帮助用户小程序平台上轻松地记录、管理和分享笔记。 首先,在小程序笔记demo中,用户可以创建多个笔记本,并将笔记按照不同的分类进行整理。这样,用户可以更好地组织和查找自己的笔记内容。 其次,该应用提供了丰富的编辑功能。用户可以在笔记中添加文本、图像、链接等不同的媒体元素。而且,用户可以对文本内容进行字体、大小、颜色、对齐等样式的调整,以及对图像进行裁剪、旋转和滤镜处理等操作,使笔记内容更加丰富和生动。 此外,小程序笔记demo还提供了数据同步的功能。不论用户是在手机、平板还是电脑上,只要登录同一账号,即可实现笔记数据的同步和共享。这意味着用户可以随时随地访问自己的笔记,并且与他人共享自己的笔记内容,便于协同工作和知识分享。 另外,该应用还具备创新的云储存功能。小程序笔记demo将用户笔记数据存储在云端,有效保障了数据的安全性和可靠性。即使用户更换设备或者卸载应用,也可以轻松地恢复之前的笔记数据。 总之,小程序笔记demo是一款便捷、高效的云笔记应用程序。它通过提供多样化的编辑和同步功能,为用户提供了更好的笔记管理和分享体验。无论是个人学习、工作办公还是团队协作,都是一款非常实用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值