云开发集成
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;
}