自定义授权
功能路径
我的直播 --> 频道设置-->观看条件设置-->自定义授权
功能介绍
打开直播观看页时,直播系统会调用客户系统的验证接口,客户自定义验证逻辑,验证通过后才能打开保利威视直播观看页,并且接口返回的观众账号具有唯一性,即同一个账号不能在两个地方同时登录,较早登录的账号会被踢出。

1、Secretkey:用于校验签名的生成
2、自定义URL: 用于自定义授权验证的API接口
自定义授权流程详解
1、在自定义URL处填写用户的授权验证API接口,需要完整的不带参数的url地址(不能是localhost等本地服务器地址,且不能带 ?号),如:http://myWebsite.com/auth
2、直播系统会将id(直播的频道)、ts(当前时间的毫秒级时间戳)、sign(用于校验的签名)、url(回调的url地址)等参数提交给用户自定义的API接口,用户需要对字符串secretkey + id + secretkey + ts进行MD5加密后与sign参数的值做比较判断是否合法。
3、通过校验和自定义验证逻辑后,客户系统将userid(学员唯一标识,仅支持英文大小写、数字和下划线)、nickname(昵称)、avatar(头像)、actor(用户头衔名称,非必须)、actorFColor(用户头衔字体颜色,非必须,请使用CSS Hex值带#号)、actorBgColor(用户头衔背景颜色,非必须,请使用CSS Hex值带#号)、vid(回放的视频id)、ts(当前时间的毫秒级时间戳)、sign(校验签名)等参数提交到回调的url接口。
4、直播系统会对签名做校验后判断是否允许学员观看.校验通过后将进入直播观看页,聊天区域将显示观众的昵称和头像。一次成功请求后,该链接将失效。
流程图如下

提交的参数描述
id
直播的频道号 ,如: 10000
ts
当前时间的毫秒数长整型。如: 1466648001977
sign
用于校验的签名,生成的规则:对字符串secretkey + id + secretkey + ts 进行MD5加密生成的字符串
url
用于回调url地址,用户在通过校验并处理后会跳到这个url
vid
回放视频id,非必须字段,如通过回放地址链接登入观看页,则会将该参数提交给用户自定义地址。如:e07738ddd6
直播系统会将上面的参数提交给用户自定义的api接口,用户需要对字符串secretkey + id +secretkey + ts进行MD5加密后与sign参数的值做比较判断是否合法。
回调的url的参数描述
userid
用户id,重复id时先登录的观众会被踢出直播间【仅支持英文大小写、数字和下划线,长度最大64位字符,超出64位的部分将被截取不做记录】
nickname
用户的昵称进行base64加密的字符串后再进行urlencode,注:昵称编码前不能包含&、<、"、'等字符,不得含有xss脚本,否则会被转义处理
marqueeName
自定义跑马灯字段进行base64加密的字符串后再进行urlencode,该字段会通过【URL自定义跑马灯】中code参数回调
avator
用户的头像,完整的图片地址字符串
actor
用户头衔名称,非必须字段
actorFColor
用户头衔自定义字体颜色,非必须字段
actorBgColor
用户头衔自定义背景色,非必须字段
vid
回放视频id,非必须字段。 如:e07738ddd6。 该值可使用接口【查询视频库列表】返回的videoId
ts
当前的系统时间的毫秒数,长整型。如: 1466648001977
sign
于校验的签名,生成的规则:对字符串secretkey + id + secretkey + ts +secretkey + userid进行MD5加密生成的字符串
通过第一步的校验后用户接口需要将上面相关的参数提交到回调的url接口,直播系统会对签名做校验后判断是否允许用户观看. 一次成功请求后,该链接将失效。
代码示例(Java)
注:LiveSignUtil属于直播SDK,如不使用直播SDK可使用以下第二点中的“MD5签名方法”。
代码示例(PHP)
展示效果
http://live.polyv.cn/watch/104400
注意事项
1、要保证自定义验证接口返回的userid的唯一性,当多个观众使用同一个userid进入观看页时,较早登录的观众会被后面登录的观众踢出,观看页会提示 "帐号在另外的地方登录,您将被退出观看。如下图:

2、学员的昵称进行base64加密后再进行urlencode加密,否则可能会造成观看页昵称显示乱码现象。
3、学员的昵称不能为空,否则保利威系统会取默认昵称 xxx观众/数字
Last updated
Was this helpful?