外部授权
功能介绍
1、当需要观众登录机构的用户系统,验证通过后才能进入直播观看页时,可使用外部授权。验证观众是否可观看由机构实现,验证通过后打开的观看页面由保利威实现。
2、机构后台针对通过验证的观众,打开直播观看页时URL需带上指定的参数,经过直播系统验证请求合法后,直播系统会调用客户在后台设置的自定义授权验证接口,进行接口授权验证,两次验证通过,才能进入直播观看页,并且接口返回的观众账号具有唯一性,即同一个账号不能在两个地方同时登录,较早登录的账号会被踢出。

1、Secretkey:用于校验签名的生成。
2、自定义URL:用于外部授权验证的API接口。
3、跳转地址:观众直接访问Polyv观看页,会跳转到该地址;若跳转地址为空,则显示默认提示页。
展示效果
http://demo.polyv.net/chenwb/open.php
外部授权流程详解
1、在自定义URL处填写用户的授权验证API接口,需要完整的不带参数的url地址(不能是localhost等本地服务器地址,且不能带 ? 号),如:http://myWebsite.com/auth
2、在请求保利威视直播观看页时需带上userid(用户ID,仅支持英文大小写、数字和下划线)、ts(当前时间的毫秒级时间戳)和sign(用于校验的签名,生成规则是secretkey + userid + secretkey + ts进行MD5加密),如https://live.polyv.cn/watch/125527?userid=6b3a43&ts=1498547407000&sign=dd9dc9e42ad7c0204398e925a4ee0f46
3、直播系统会对字符串secretkey+userid+secretkey+ts进行MD5加密后与用户提交的sign参数的值做比较判断是否合法。一次成功请求后,该链接将失效(sign只能成功使用一次)。如果合法,直播系统将调用用户的api接口,并把userid(用户ID)、ts(当前时间的毫秒级时间戳)、channelId(频道号)和token(用于校验的签名)四个参数通过GET请求传给用户。如果不合法,则给出错误提示。
4、用户API接口获取userid、ts和token参数后,进行签名验证。如果验证通过,则将学员相关信息(详参“用户系统返回观众信息json说明”)返回给直播系统。
5、直播系统接收用户API接口返回的数据,如果验证成功,则进入到保利威视直播观看页,聊天区将显示学员的昵称和头像。如果验证失败,则给出错误提示。
交互图如下

参数描述
请求观看页所带参数
用户将以下的参数提交给直播的观看页,(例如:https://live.polyv.cn/watch/125527?userid=test&ts=1565948760108&sign=b0b6eb22b6fa5e5684873052c27a6cef)
直播系统会对sign 进行验证,判断是否合法,一次成功请求后,该链接将失效(sign只能成功使用一次)
userid
true
观众id,重复id时先登录的观众会被踢出直播间,【仅支持英文大小写、数字和下划线,长度最大64位字符,超出64位的部分将被截取不做记录】
ts
true
13位毫秒级时间戳
sign
true
用户校验的签名(字母小写),加密规则:secretkey + userid + secretkey + ts
观看页请求观众信息接口参数
观看页请求用户在后台设置的自定义URL获取观众信息,以下为请求所带的参数
userid
true
观众id,重复id时先登录的观众会被踢出直播间,【仅支持英文大小写、数字和下划线,长度最大64位字符】
channelId
true
频道号
ts
true
当前时间的13位毫秒级时间戳
token
true
用于校验的签名,生成的规则:对字符串secretkey + userid + secretkey + ts进行MD5加密生成的字符串(字母小写)
用户系统返回观众信息响应参数描述
status
int
true
请求结果,1表示成功,0表示失败
userid
string
true
观众id,【仅支持英文大小写、数字和下划线,长度最大64位字符】
nickname
string
true
观众昵称
avatar
string
true
观众头像地址,头像尺寸200*200,体积不超过30KB。
actor
string
false
观众头衔
actorFColor
string
false
观众头衔字体颜色,非必须,请使用CSS Hex值并且带# 号
actorBgColor
string
false
观众头衔背景颜色,非必须,请使用CSS Hex值带# 号
param4
string
false
统计观众观看日志的自定义参数
param5
string
false
统计观众观看日志的自定义参数
errorUrl
string
false
请求失败时观看页跳转的地址(会带上channelId和userid)
响应示例
成功示例
异常示例
代码示例(JAVA)
注:LiveSignUtil属于直播SDK,如不使用直播SDK可使用以下第三点中的“MD5签名方法”。
1、用户系统生成观看链接
2、用户服务器校验polyv直播系统回调
3、MD5签名方法
代码示例(PHP)
注意事项
1、要保证自定义验证接口返回的userid的唯一性,当多个观众使用同一个userid进入观看页时,较早登录的观众会被后面登录的观众踢出,观看页会提示 "帐号在另外的地方登录,您将被退出观看。如下图:

2、自定义验证接口需要填写完整的URL地址,且不能是localhost等本地服务器地址。
3、自定义验证接口返回给直播系统的数据格式是json格式。
4、同时传入了nickname和marqueeName,在观看日志中,marqueeName将作为用户昵称的统计字段。
错误提示
1、user not found:请求自定义验证接口错误,或者接口返回的格式不对。
2、invalid sign:签名错误,sign的生成规则是secretkey+userid+secretkey+ts进行MD5加密。
3、sign expired:签名过期,每一个sign只能使用一次,使用后需重新生成。
Last updated
Was this helpful?