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 信息。