tencent cloud

云开发 CloudBase

产品简介
产品概述
功能和优势
应用场景
系统限制
购买指南
价格文档
计费能力项说明
包年包月套餐说明
告警与通知
欠费说明
开发指南
云储存
数据库
身份认证
云函数
静态网站托管
SDK 文档
客户端 SDK
服务端 SDK
管理端 SDK
产品协议
Cloud Development Service Level Agreement

自定义登录

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();
整体流程示意如下:

自定义登录






帮助和支持

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

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

文档反馈