帮你快速理解、总结文档立即下载

Jwt token 生成

最近更新时间:2024-07-11 17:06:22
我的收藏

简介

该文档用于描述经过 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 信息。