因此,我使用以下脚本(简化)来呈现带有签名的JW Player链接的脚本标记。链接的失效日期应为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>';
?>
当我将超时设置为&gt; 1时,播放器播放视频就好了,当我将超时设置为&lt; 1(Permission denied)时,播放器不播放视频。到现在为止还挺好。但是当我从DOM复制渲染的脚本标记(例如10秒的超时)并将其放入静态HTML文件并在链接过期后加载页面时,视频仍然会播放。我在哪里想错了?
编辑:这是一个示例链接(超时为3600):
<script type="text/javascript" src="http://content.jwplatform.com/players/rUqzk7Ff-JGyYovz4.js?exp=1484053682&sig=269e796e58824711b32b2dc47c574cd8"></script>
答案 0 :(得分:1)
您的服务器中设置了最小超时时间。
$ timeout
- 您希望签名网址保持有效的时间(以秒为单位),例如“3600”。
- 典型的超时时间在一分钟到几个小时之间。默认为“3600”。
- 确保服务器上的时间设置正确,或者超时时间较短的网址会失败!
For More information
https://support.jwplayer.com/customer/portal/articles/1433647-url-token-signing
发现另一篇有趣的文章 - http://oriolrius.cat/blog/2015/08/12/secure-download-urls-with-expiration-time/,可能会有所帮助。