Bootstrap

微信小程序:鉴权功能

1. 云开发初始化

//云开发初始化
    wx.cloud.init({
      env: 'guobo-4gv6vnd2ab24c4fb',
      traceUser: true
    })

2. 云函数初始化

"cloudfunctionRoot":"cloud/",

在这里插入图片描述

3. 创建云函数

(我比较习惯用cloud,可以自己改喜欢的名字)
在这里插入图片描述
选中“cloud”,右键【新建Node.js云函数】
会自动生成一个对应文件夹
在这里插入图片描述

4. 创建数据集合

在这里插入图片描述

5. 代码

在刚刚生成的【login】文件夹中【index.js】
编辑下方代码

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//获取用户的openid
exports.main = async(event, context) => {
  console.log(event)
  console.log(context)
  const wxContext = cloud.getWXContext()
  return {
    openid: wxContext.OPENID,
  }
}

然后右键【login】文件夹,选择【云端安装依赖】
在这里插入图片描述
在我们需要的页面【js】中加入这段代码

const db = wx.cloud.database();
Page({
  data: {
   
  },
    onLoad: function (options) {
      this.login();
      },
    // 用户鉴权
    login() {
      let that = this;
      wx.cloud.callFunction({
      name: 'login',
      complete: res => {
        console.log('获取管理员权限成功!')
        db.collection('root').get().then(res2 => {  //root为设为管理员的数据库
          if (res.result.openid === res2.data[0]._openid) {
            this.setData({
              loginOK: true
            })
          }
        })
      }
    })
  }
})

在【wxml】中加入

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

6. 成果展示

在这里插入图片描述

参考学习资料
code袁:超简单实现微信小程序不同用户权限设置
Mengo_x:小程序云开发笔记:判断用户权限,不同权限用户看到不同内容

;