概览
开发者如果不需要保利威 Saas 的观看条件验证功能时,可通过保利威 Api 接口生成观众登录令牌(以下统称 登录令牌),登录令牌验证通过后即可绕过观看条件限制进入直播观看页,详细用法可见以下文档:
一、处理流程
1.1 步骤1:获取登录令牌
通过保利威 Api 接口获取观众登录令牌,接口文档可见:获取观众观看调用接口token。
由于该接口涉及 appSecret 进行参数签名,建议该步骤由服务端生成。
1.2 步骤2:验证登录令牌
通过步骤1 生成登录令牌后,通过核心实例的验证模块的 verifyViewerLoginToken
方法验证登录令牌,验证通过后即可安装核心实例。
1.3 步骤3:安装核心实例
通过步骤2 验证后即可根据正常流程安装核心实例,注意关于登录令牌的流程仅在首次安装前需要,二次安装则不再需要该流程。
二、示例代码
以下为 js 方式的流程示例代码:
import { send } from '@just4/ajax/ajax';
import md5 from 'md5';
import { createWatchCore } from '@polyv/live-watch-sdk';
/**
* 生成签名
* @param {Object} data 请求参数
* @param {String} secret 签名密钥
* @returns 签名串
*/
function getSign(data, secret) {
let text = '';
const keys = Object.keys(data).sort();
for (const key of keys) {
text += `${key}${data[key]}`;
}
const sign = md5(secret + text + secret);
return sign.toUpperCase();
}
/**
* 获取登录令牌
* @param {string} channelId
*/
async function getLoginToken({ channelId }) {
// 请求数据
const reqData = {
appId: '应用 id,从管理后台获取',
timestamp: Date.now(),
channelId,
viewerId: '观众 id',
nickname: '观众昵称',
};
// 应用密钥,从管理后台获取,建议获取登录令牌流程在服务端中进行,避免将应用密钥直接暴露在 js 中
const appSecret = 'xxxxx';
// 生成签名
const sign = getSign(reqData, appSecret);
reqData.sign = sign;
// 通过 ajax 获取登录令牌
const response = await send('//api.polyv.net/live/v3/channel/watch/get-api-token', {
method: 'post',
data: reqData,
});
const result = response.data;
return result.data.token;
}
// 示例方法
async function example() {
const channelId = '频道号';
// 创建观看页 SDK 核心实例
const watchCore = createWatchCore({ channelId });
// 步骤1:获取登录令牌
const loginToken = await getLoginToken({ channelId });
// 步骤2:验证登录令牌
await watchCore.verify.verifyViewerLoginToken(loginToken);
// 步骤3:安装核心实例
await watchCore.setup();
}
三、时序图
关于登录令牌的流程图如下:
Last updated
Was this helpful?