小程序云开发笔记:判断用户权限,不同权限用户看到不同内容 |
您所在的位置:网站首页 › 微信小程序怎么设置管理员 › 小程序云开发笔记:判断用户权限,不同权限用户看到不同内容 |
苦于学习小程序开发时找不到多少有用的博客教程,网上看过很多博客,不是只有几行一笔带过,就是互相都是复制粘贴,甚至全篇复制微信官方文档。 本篇博客是另一篇实战项目博客的拓展,将其中踩过的坑单独拿出来做个总结。有兴趣可以去看看那篇: 小程序实战:推文留言板 实际上此功能可以直接由 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 |