配置自定义授权页地址,验证成功后才可以进入观看直播(需要具有开发能力)可实现验证观众身份后观看、关注公众号后观看等授权等自定义授权观看形式
授权流程图:
使用步骤:
1、功能开通,联系商务开通 S3 套餐或专属套餐,开启『自定义授权』功能
2、功能位置,登录控制台 manage.shangzhibo.tv - 进入活动 - 观看授权 -自定义授权
3、配置授权页地址,配置你的自主授权页面地址
4、复制密钥,配置完成后,点击『提交』,系统自动生成构造 token 需要的密钥
5、生成常规令牌(token)
const timestamp = Date.now(); const key = 'secret-key'; const sign = md5(`${timestamp}-${key}`) const token = `${timestamp}-${sign}`
chrome 浏览器开发者工具生成 timestamp 演示:
注意需要使用当前时间生成 timestamp ,默认 10 分钟后失效
在线 md5 加密工具生成 key 演示:
Token(令牌)构造:1566286417058-3ee7b145f9dd9bda0f2fc200189fa197
6、 生成一次性令牌 (token)
一次性令牌顾名思义,即令牌只能使用一次,并且一次性令牌有过期时间,生成后请尽快使用。目前一次性令牌的过期时间暂时定为 10 分钟,后续可能会根据情况进行调整,请勿过分依赖此时间。一次性令牌与常规令牌的区别在于,一次性令牌以 O- (大写字母 O 与横线) 开头标识,并且在生成过程中需要 10 ~ 20 位之间的随机字符串(字符串不要重复使用)加以混淆。
一次性令牌正则表达式校验规则: ^O-\d{13}-\w{10,20}-[a-f0-9]{32}$
function randomString(length, chars) { chars = chars || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; let result = ''; for (let i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)]; return result; } const timestamp = Date.now(); const key = <secret-key>; const nonceStr = randomString(16); const sign = md5(`O-${timestamp}-${nonceStr}-${key}`); const token = `O-${timestamp}-${nonceStr}-${sign}`;
一次性令牌 (token) 示例: O-1597134852061-uEYPyjXfi4KeyVVy-b97d2582c2e03ed8d73ffc4ac4b372ab
7、带上令牌的访问地址
常规令牌: https://shangzhibo.tv/watch/6136209?token=1566286417058-3ee7b145f9dd9bda0f2fc200189fa197
一次性令牌: https://shangzhibo.tv/watch/6136209?token=O-1597134852061-uEYPyjXfi4KeyVVy-b97d2582c2e03ed8d73ffc4ac4b372ab