独立授权
Last updated
Last updated
我的直播
--> 频道设置
-->观看条件设置
-->独立授权
打开直播观看页的时候URL需带上指定的参数,经过直播系统验证请求合法后,直接进入直播观看页,同时将用户所传参数作为观看页的观众信息进行设置,要求接口返回的观众账号具有唯一性,即同一个账号不能在两个地方同时登录,较早登录的账号会被踢出。
1、Secretkey:用于校验签名的生成。
1、将频道设置为独立授权后,通过后台或者api接口获取到用户独立授权观看条件的secretkey。
2、在请求保利威直播观看页时需带上相关参数,如:https://live.polyv.cn/watch/1965681?userid=1b448be323&ts=1498547407000&sign=dd9dc9e42ad7c0204398e925a4ee0f46&nickname=viewerTests&avatar=http://livestatic.videocc.net/assets/wimages/missing_face.png
3、直播系统会对用户提交的sign参数的值做比较判断是否合法,一次成功请求后,该链接将失效(sign只能成功使用一次),如果合法,直播系统将使用nickname、userid、avatar,进入到保利威视直播观看页聊天区将显示学员的昵称和头像。如果验证失败,则显示错误页面。
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
userid | true | String | 观众id,重复id时先登录的观众会被踢出直播间【仅支持英文大小写、数字和下划线,长度最大64位字符,超出64位的部分将被截取不做记录】。注意userid中的i为小写 |
ts | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
sign | true | String | 用于校验的签名,生成规则是secretkey + userid + secretkey + ts进行MD5加密 |
nickname | true | String | 观众昵称,需要进行url安全的base64编码 |
avatar | false | String | 观众头像的url地址 |
vid | false | String | 回放视频id,如需回放某个回放视频,则需要传该参数,如:e07738ddd6 该值可使用接口【查询视频库列表】返回的videoId |
param4 | false | String | 统计观众观看日志的自定义参数,需要先进行base64加密后再进行urlencode |
param5 | false | String | 统计观众观看日志的自定义参数,需要先进行base64加密后再进行urlencode |
failRedirectUrl | false | String | 独立授权验证失败则转跳到该url,不填则跳转默认失败页 |
secretData | false | String | 存放目标参数(SM2)加密后的字符串 |
支持SM2的加密方式,加密的参数列表: userid、nickname、param4、param5
参数名 | 支持加密 | 类型 | 说明 |
---|---|---|---|
userid | Y | String | 观众用户ID,加密可选 |
nickname | Y | String | 观众昵称,加密可选 |
param4 | Y | String | 参数4,加密可选 |
param5 | Y | String | 参数5,加密可选 |
secretData | N | String | 存放目标参数加密后的字符串 |
加密样式
参数组装
签名: 参与加密的参数真实值用于签名,签名方式保持不变。
需要注意的时候,加密后参数长度变大,考虑到浏览器GET请求参数总长的限制,需要控制参数值的长度,参数总长度1k个字符为大部分浏览器支持.
解密
解密后的参数,将取代外层对应的参数值,若解密后没有对应的参数或值为空不填充,则保持原值.外层参数可以用一些随机值来占位,例如userid=test&nickname=test¶m4=test¶m5=test
例如
场景1: SM2(userid={userid}&nickname={nickname}) 解密后将替换外层的明文参数userid、nickname
场景2: SM2(userid={userid}&nickname={nickname}¶m4={param4}) 解密后将替换外层的明文参数userid、nickname、param4
场景3: SM2(userid={userid}&nickname={nickname}¶m5={param5}) 解密后将替换外层的明文参数userid、nickname、param5
场景4: SM2(userid={userid}&nickname={nickname}¶m4={param4}¶m5={param5}) 解密后将替换外层的明文参数userid、nickname、param4、param5
http://demo.ipolyv.cn/wfy/directAuth.php
1、要保证提交的userid的唯一性,当多个观众使用同一个userid进入观看页时,较早登录的观众会被后面登录的观众踢出,观看页会提示 "帐号在另外的地方登录,您将被退出观看。如下图: