JW Player 的签名 URL 不会过期

Signed URL for JW Player doesn't expire

因此,我使用以下脚本(简化)来呈现带有签名 JW 播放器的脚本标签 Link。 link 的到期日期应为 10 秒(仅用于测试)。

<?php
/**
 * generates a signed URL for JW Player
 *
 **/
function _getSignedUrl($path, $secret, $timeout = 3600, $domain = 'content.jwplatform.com') {
    $expires = time() + $timeout;
    $signature = md5($path . ':' . $expires . ':' . $secret);
    return 'http://' . $domain . '/' . $path . '?exp=' . $expires . '&sig=' . $signature;
}

echo '<script type="text/javascript" src="' . _getSignedUrl('players/foo-bar.js', 'mYsEcReT1234', 10) . '"></script>';
?>

当我将超时设置为 >1 时播放器可以正常播放视频,而当我将超时设置为 <1 时播放器不播放(权限被拒绝)。到目前为止,一切都很好。但是当我从 DOM 复制呈现的脚本标签(超时时间为 10 秒)并将其放入静态 HTML 文件并在 link 应该过期后加载页面,视频仍在播放。我哪里想错了?

编辑:这是一个示例 link(超时为 3600):

<script type="text/javascript" src="http://content.jwplatform.com/players/rUqzk7Ff-JGyYovz4.js?exp=1484053682&amp;sig=269e796e58824711b32b2dc47c574cd8"></script>

您的服务器设置了最短超时时间。

$timeout

  • The time in seconds you want the signed URL to remain valid, e.g. "3600".
  • Typical timeouts are between a minute and a few hours. Default is "3600".
  • Make sure the time on your server is set correctly, or URLs with short timeouts will fail!

For More information

https://support.jwplayer.com/customer/portal/articles/1433647-url-token-signing

https://support-static.jwplayer.com/API/php-example.txt

找到另一篇关于此的有趣文章 - http://oriolrius.cat/blog/2015/08/12/secure-download-urls-with-expiration-time/ 可能会有帮助。