示例回调服务器
Cobo 提供了多种编程语言的示例回调服务器实现,以帮助您快速开发回调服务器。您可以在我们的 GitHub 仓库中找到这些示例。一般工作流程
您的回调服务器必须:- 实现用于接收任务请求的 HTTP 端点
- 处理来自 TSS Node 的 JWT 签名消息
- 实现您的自定义风险控制逻辑
- 返回签名响应给 TSS Node
HTTP 端点
回调服务器必须公开具有以下规范的 HTTP 端点:- 路径:
/v2/check(或与您的业务需求一致的任何其他路径)请记得在 TSS Node 的配置文件中注册您选择的路径。有关详细说明,请参阅 配置 TSS Node 设置。 - 方法:
POST - 内容类型:
application/x-www-form-urlencoded
解析请求
对于每个任务请求,TSS Node :- 根据任务类型(KeyGen、KeySign 或 KeyReshare)创建一个
CallbackRequest结构 - 将
CallbackRequest结构序列化为 JSON 格式以获取CallbackRequestJsonString - 使用其 RSA 私钥(TSS Node 的回调私钥)对
CallbackRequestJsonString进行签名,将其用作 JWT 负载 - 发送包含 JWT 的 HTTP POST 请求,JWT 位于名为
TSS_JWT_MSG的表单字段中
- 从 HTTP POST 请求中的
TSS_JWT_MSG表单字段中提取 JWT - 使用 TSS Node 的回调公钥验证 JWT 签名
- 从 JWT 中提取负载并将其反序列化为
CallbackRequest结构 - 根据
CallbackRequest类型,反序列化meta字段以获取详细的请求信息
风险控制实施
您的回调服务器必须实施风险控制以验证每个任务请求。对于每个CallbackRequest,您应该:
- 分析请求内容
- 应用您的风险控制策略以确保请求的私钥分片操作是合法和授权的
- 返回批准或拒绝决定
创建响应
要构建 HTTP 响应,您的回调服务器必须:- 根据您的风险控制决策创建一个
CallbackResponse结构 - 将
CallbackResponse结构序列化为 JSON 格式以获取CallbackResponseJsonString - 使用您的回调服务器的 RSA 私钥对
CallbackResponseJsonString进行签名 - 直接在 HTTP 响应包体中返回 JWT 给 TSS Node
如果 TSS Node 没有收到响应,它将重试请求。重试次数达到最大值后,TSS Node 将认为风险控制决策为“拒绝”。
