独立授权

功能路径

我的直播 --> 频道设置-->观看条件设置-->独立授权

功能介绍

打开直播观看页的时候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,进入到保利威视直播观看页聊天区将显示学员的昵称和头像。如果验证失败,则显示错误页面。

在线API调用

请求参数描述

参数名
必选
类型
说明

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

SM2加密说明

参数名
支持加密
类型
说明

userid

Y

String

观众用户ID,加密可选

nickname

Y

String

观众昵称,加密可选

param4

Y

String

参数4,加密可选

param5

Y

String

参数5,加密可选

secretData

N

String

存放目标参数加密后的字符串

加密样式

参数组装

签名: 参与加密的参数真实值用于签名,签名方式保持不变。

需要注意的时候,加密后参数长度变大,考虑到浏览器GET请求参数总长的限制,需要控制参数值的长度,参数总长度1k个字符为大部分浏览器支持.

解密

解密后的参数,将取代外层对应的参数值,若解密后没有对应的参数或值为空不填充,则保持原值.外层参数可以用一些随机值来占位,例如userid=test&nickname=test&param4=test&param5=test

例如

场景1: SM2(userid={userid}&nickname={nickname}) 解密后将替换外层的明文参数userid、nickname

场景2: SM2(userid={userid}&nickname={nickname}&param4={param4}) 解密后将替换外层的明文参数userid、nickname、param4

场景3: SM2(userid={userid}&nickname={nickname}&param5={param5}) 解密后将替换外层的明文参数userid、nickname、param5

场景4: SM2(userid={userid}&nickname={nickname}&param4={param4}&param5={param5}) 解密后将替换外层的明文参数userid、nickname、param4、param5

代码示例(Java)

代码示例(PHP)

展示效果

http://demo.ipolyv.cn/wfy/directAuth.php

注意事项

1、要保证提交的userid的唯一性,当多个观众使用同一个userid进入观看页时,较早登录的观众会被后面登录的观众踢出,观看页会提示 "帐号在另外的地方登录,您将被退出观看。如下图:

Last updated

Was this helpful?