跳到主要内容

云开发集成

CloudBase CMS 已经引入了 @cloudbase/js-sdk,在微应用中,可以通过 window.cloudbase 直接使用 @cloudbase/js-sdk 的能力,具体的用法请参考 JS SDK 的使用文档。

登录

CMS 使用了用户名密码登录,默认情况下,用户通过 CMS 打开微应用时,为已经登录状态,可以直接通过 JS SDK 调用云函数。

调用云函数

在微应用中访问同环境中的云函数 sayHello,仅支持访问 CMS 安装环境的云函数

// 调用云函数
window.cloudbase.callFunction({
name: "sayHello",
data: {
msg: "hello"
}
});

云函数中的鉴权

可以参考下面的代码对调用云函数的请求进行鉴权

const cloudbase = require("@cloudbase/node-sdk");

async function checkAuth() {
// 获取用户信息
// 在云函数中获取用户身份信息
const app = cloudbase.init();
const { TCB_UUID } = cloudbase.getCloudbaseContext();
let { userInfo } = await app.auth().getEndUserInfo(TCB_UUID);

// 未登录用户
if (!userInfo?.username && !userInfo?.openId) {
throw new Error("未登录用户");
}

// 校验用户是否为 CMS 的用户
// 腾讯云 CMS 用户数据集合为 tcb-ext-cms-users
// 微信 CMS 用户数据集合为 wx-ext-cms-users
const {
data: [userRecord]
} = await app
.database()
.collection("tcb-ext-cms-users")
.where({
username: userInfo.username
})
.get();

// 用户信息不存在
if (!userRecord) {
throw new Error("用户不存在,请确认登录信息!");
}

// 校验通过
return true;
}