tencent cloud

云开发 CloudBase

自定义登录

PDF
聚焦模式
字号
最后更新时间: 2025-12-31 11:53:09
开发者可以使用自定义登录,在自己的服务器或者云函数内,为用户签发带有自定义身份 ID 的自定义登录凭证 Ticket,随后用户端 SDK 便可以使用 Ticket 登录 CloudBase。

适用场景

自定义登录一般用于下面几种场景:
开发者希望将自有的账号体系与云开发 CloudBase 账号进行一对一关联。
开发者希望自行接管鉴权流程。

步骤概览

自定义登录需要以下几个步骤:
1. 获取 CloudBase 自定义登录私钥。
2. 使用 CloudBase 服务端 SDK,通过私钥签发出 Ticket,并返回至用户端。
3. 用户端 SDK 使用 Ticket 登录 CloudBase。

第 1 步:获取自定义登录私钥

1. 登录云开发平台
2. 进入身份认证 > 登录方式页面。
3. 在登录方式列表中,选择自定义登录方式,单击去设置启用自定义登录,再单击私钥下载。

云开发下载私钥


4. 私钥是一份携带有 JSON 数据的文件,请将下载或复制的私钥文件保存到您的服务器或者云函数中,假设路径为/path/to/your/tcb_custom_login.json
注意:
1. 私钥文件是证明管理员身份的重要凭证,请务必妥善保存,避免泄漏。
2. 每次生成私钥文件都会使之前生成的私钥文件在 2 小时后失效。

第 2 步:签发 Ticket

调用 CloudBase 服务端 SDK,在初始化时传入自定义登录私钥,随后便可以签发出 Ticket,并返回至用户端。
const cloudbase = require("@cloudbase/node-sdk");

// 1. 初始化 SDK
const app = cloudbase.init({
env: "your-env-id",
// 传入自定义登录私钥
credentials: require("/path/to/your/tcb_custom_login.json")
});

// 2. 开发者自定义的用户唯一身份标识
const customUserId = "your-customUserId";

// 3. 创建ticket
const ticket = app.auth().createTicket(customUserId);

// 4. 将ticket返回至客户端
return ticket;
注意:
customUserId 必须满足以下需求:
4-32 位字符;
字符只能是大小写英文字母、数字、以及 _-#@(){}[]:.,<>+#~ 中的字符。

第 3 步:使用 Ticket 登录 CloudBase

注意:
推荐的@cloudbase/js-sdk版本号为: >=2.8.31。
用户端应用获取到 Ticket 之后,便可以调用客户端 SDK 的方法登录 CloudBase:
import cloudbase from '@cloudbase/js-sdk';

const app = cloudbase.init({
env: 'your-env-id'
});

const auth = app.auth();

async function login(){
const loginState = auth.hasLoginState();
// 1. 建议登录前检查当前是否已经登录
if(!loginState){
// 2. 请求开发者自有服务接口获取ticket
await auth.setCustomSignFunc(() => {
// 获取 ticket 并返回
return Promise.resolve(/* ticket */);
})
// 3. 登录 CloudBase
await auth.signInWithCustomTicket();
}
}

login();
整体流程示意如下:

自定义登录






帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈