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