Skip to content

业务服务端签发连接参数

设备连接 WHIP Service 前,业务服务端必须先校验访问权限,再向指定设备返回 peer_id 和连接 Token。

签发时需要:

  • 服务注册确认的 service_name 和 Access Key ID。
  • 与已注册公钥配对的 Ed25519 私钥。
  • 获得授权的 TiRTC 设备 ID。
  • 目标 WHIP Service 所需的 Query 参数(没有则留空)。
  • 符合业务离线恢复周期的 Token 有效期。

构造 peer_id

text
whips://{service_name}?{raw_query}

service_name 使用服务注册时确认的名称;Query 根据本次连接目标构造,没有 Query 时省略 ?。Token Scope 绑定 service_name 和完整 Query,签发后两者必须保持一致。

Token 签发算法

使用 whip-sdk 签发 Token:

go
import (
    "time"

    "gitlab.tange-ai.com/tirtc-nexus/whip-sdk/go/pkg/tirtcxauth"
)

issuer, err := tirtcxauth.NewEd25519TokenIssuer(map[string]string{
    accessKeyID: ed25519PrivateKey,
})
if err != nil {
    return err
}

token, err := issuer.Issue(
    serviceName,
    accessKeyID,
    deviceID,
    rawQuery,
    30*24*time.Hour,
)
if err != nil {
    return err
}
python
from tirtcxauth import Ed25519TokenIssuer

issuer = Ed25519TokenIssuer({
    access_key_id: ed25519_private_key,
})

token = issuer.issue(
    service_name,
    access_key_id,
    device_id,
    raw_query,
    30 * 24 * 60 * 60,
)

rawQuery / raw_query 必须与 peer_id 中的完整 Query 一致。私钥使用与已注册公钥配对的 Ed25519 私钥。

下发连接参数

业务服务端只向已授权设备返回匹配的 peer_id 和 Token。设备将两者分别作为 TiRtcWhipConnectservice_desctoken 参数。

私钥只保存在业务服务端的密钥管理系统中,不得下发给设备或写入日志。完整 Token 也不得记录到日志、指标标签或错误响应。

TiRTC WHIP 开发文档