自定义授权功能使用说明

ludai发表于:2019年08月19日 17:03:55更新于:2020年08月11日 16:54:08

配置自定义授权页地址,验证成功后才可以进入观看直播(需要具有开发能力)可实现验证观众身份后观看、关注公众号后观看等授权等自定义授权观看形式

授权流程图:

image.png


使用步骤:

1、功能开通,联系商务开通 S3 套餐或专属套餐,开启『自定义授权』功能

2、功能位置,登录控制台 manage.shangzhibo.tv - 进入活动 - 观看授权 -自定义授权

3、配置授权页地址,配置你的自主授权页面地址

image.png

4、复制密钥,配置完成后,点击『提交』,系统自动生成构造 token 需要的密钥

image.png

5、生成常规令牌(token)

const timestamp = Date.now();
const key = 'secret-key';
const sign = md5(`${timestamp}-${key}`)
const token = `${timestamp}-${sign}`

chrome 浏览器开发者工具生成 timestamp 演示:

注意需要使用当前时间生成 timestamp ,默认 10 分钟后失效

image.png

在线 md5 加密工具生成 key 演示:

image.png

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




    您需要登录后才可以回复