保利威文档中心

幫助中心

概覽

更新時間:2025-11-19 16:08:38

開發者若不需要保利威 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();
}

三、時序圖

關於登入令牌的流程圖如下:

登入令牌流程時序圖
联系客服,在线咨询