模板说明
创建relay中继任务,实际上就是rtmp的play或publish操作。
当我们连接远端服务器时,对方可能开启了鉴权规则,那么我们的链接也必须要附带鉴权参数。
由于目前常用的鉴权方式是附带过期时间戳的,因此每次请求时都应该是不同的签名。
当然您也可以预生成一个过期时间特别久的比如1年以后过期。
使用nms的relay规则,可以在创建时填入签名参数的模板,在nms进行relay中继任务创建时根据模板生成新的签名参数。
模板例子
nms模板
1 |
{{$ts := gents 30}}{{$x := printf `/%s/%s-%d-%s` .App .Name $ts `authkey@2019`}}sign={{$ts}}-{{md5 $x}} |
讲解:
前面我们的鉴权算法中有说明到,生成签名前的字符串需要流信息+过期时间+密码后md5
上面的模板字符串可以分为3个部分
- {{$ts := gents 30}} 先生成一个30秒后过期的时间戳并赋值给变量ts
- {{$x := printf
/%s/%s-%d-%s
.App .Name $tsauthkey@2019
}} 将 流app,name,过期时间戳,密码进行字符串拼接,再赋值给变量x - sign={{$ts}}-{{md5 $x}} 拼接键名,键值
阿里云模板
1 |
{{$ts := gents 30}}{{$x := printf `/%s/%s-%d-0-0-%s` .App .Name $ts `your#aliyun#key`}}auth_key={{$ts}}-0-0-{{md5 $x}} |
阿里云用户直接替换 your#aliyun#key 为您在阿里云后台设置的密码即可
腾讯云模板
待补充
网宿模板
待补充
可用函数
gents(add_time)
获取unix时间戳的加值,单位秒,参数不能为空可以是0
gentshex(add_time)
获取unix时间戳的加值的hex值,单位秒,参数不能为空可以是0
md5
32位md5函数
md516
16位md5函数
sha256
sha256函数
补充
如果对鉴权模板使用上有问题,或需要增加函数,欢迎留言讨论
原创文章,转载请注明: 转载自贝壳博客
本文链接地址: NMS v3系列教程之 八、relay规则鉴权模板