业务服务端签发连接参数
设备连接 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。设备将两者分别作为 TiRtcWhipConnect 的 service_desc 和 token 参数。
私钥只保存在业务服务端的密钥管理系统中,不得下发给设备或写入日志。完整 Token 也不得记录到日志、指标标签或错误响应。