简介
该文档用于描述经过 HLS 加密的视频 token 的生成方式与 token 的详细信息。终端在 token 合法的情况下可以播放视频内容。下面,将介绍 token 的参数组成和生成规则。
示例代码
<?php $playKey = 'playKey';//替换为用户的 playKey,请通过该接口进行查看和管理,https://cloud.tencent.com/document/product/460/104329 $bucket = 'examplebucket-1250000000'; $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket $publicKey = "publicKey"; $header = array( 'alg' => 'HS256', 'typ' => 'JWT' ); $payload = array( "Type" => "CosCiToken", "AppId" => "1250000000", "BucketId" => $bucket, "Object" => "exampleobject", "Issuer" => "client", "IssuedTimeStamp" => time(), "ExpireTimeStamp" => time() + 3600 * 6, "UsageLimit" => 3, "ProtectSchema" => "rsa1024", "PublicKey" => base64_encode($publicKey), "ProtectContentKey" => 1, ); $base64header = base64UrlEncode(json_encode($header, JSON_UNESCAPED_UNICODE)); $base64payload = base64UrlEncode(json_encode($payload, JSON_UNESCAPED_UNICODE)); $token = $base64header . '.' . $base64payload . '.' . base64UrlEncode(hash_hmac('sha256', $base64header . '.' . $base64payload, $playKey, true)); // 请求成功print_r($token); function base64UrlEncode($input) { return str_replace('=', '', strtr(base64_encode($input), '+/', '-_')); }
参数说明
参数名称 | 描述 | 类型 | 是否必选 |
Type | token类型,固定值为 CosCiToken | String | 是 |
AppId | 用户的 appId | String | 是 |
BucketId | 需要播放的文件所在的 BucketId | String | 是 |
Object | 需要播放的文件名 | String | 是 |
Issuer | token 颁发者,固定为 client | String | 是 |
IssuedTimeStamp | token 颁发秒级时间戳 | int | 是 |
ExpireTimeStamp | token 过期秒级时间戳,默认1天过期 | int | 否 |
UsageLimit | token 使用次数限制,默认限制100次 | int | 是 |
ProtectContentKey | 是否加密解密密钥(播放时解密ts视频流的密钥),1表示对解密密钥加密,0表示不对解密密钥加密。 默认为0 | int | 否 |
ProtectSchema | 保护模式,仅支持 rsa1024 ,则表示使用 RSA 非对称加密的方式保护,公私钥对长度为 1024 bit | String | 否(当 ProtectContentKey=1 时必选) |
PublicKey | 公钥。1024 bit 的 RSA 公钥,需使用 Base64 进行编码 | String | 否(当 ProtectContentKey=1 时必选) |
返回结果说明
返回生成 token 信息。