GetHLSTokenDemo.php 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. $playKey = 'playKey';//替换为用户的 playKey,请通过该接口进行查看和管理,https://cloud.tencent.com/document/product/460/104329
  3. $bucket = 'examplebucket-1250000000';
  4. $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
  5. $publicKey = "publicKey";
  6. $header = array(
  7. 'alg' => 'HS256',
  8. 'typ' => 'JWT'
  9. );
  10. $payload = array(
  11. "Type" => "CosCiToken",
  12. "AppId" => "1250000000",
  13. "BucketId" => $bucket,
  14. "Object" => "exampleobject",
  15. "Issuer" => "client",
  16. "IssuedTimeStamp" => time(),
  17. "ExpireTimeStamp" => time() + 3600 * 6,
  18. "UsageLimit" => 3,
  19. "ProtectScheme" => "rsa1024",
  20. "PublicKey" => base64_encode($publicKey),
  21. "ProtectContentKey" => 1,
  22. );
  23. $base64header = base64UrlEncode(json_encode($header, JSON_UNESCAPED_UNICODE));
  24. $base64payload = base64UrlEncode(json_encode($payload, JSON_UNESCAPED_UNICODE));
  25. $token = $base64header . '.' . $base64payload . '.' . base64UrlEncode(hash_hmac('sha256', $base64header . '.' . $base64payload, $playKey, true));
  26. echo $token;
  27. function base64UrlEncode($input) {
  28. return str_replace('=', '', strtr(base64_encode($input), '+/', '-_'));
  29. }