保利威文档中心

幫助中心

觀看條件 - 自訂授權

更新時間:2026-07-17 15:16:39

一、設定資訊

1.1 自訂授權設定資訊

關於自訂授權設定及服務端的處理流程可見幫助中心文件:自訂授權

Interface 介面: AuthSettingItemCustom

屬性名 說明 類型
authType 條件類型 Custom
enabled 是否啟用 null | YN
customUri 自訂 url string
customEntryText 入口文字 null | string

二、使用方式

2.1 允許驗證自訂授權

從授權平台跳轉回觀看頁後,透過該方法判斷目前環境下是否允許進行自訂授權簽名驗證。

從 v0.11.0 版本開始,在授權通過,但其他配置是正常的情況下,也允許進行外部授權簽名驗證。另外透過新增 options 參數,開發者可以設定 { ignoreAuthorized:false } 來達到和之前版本一樣的效果

Api 方法: allowToVerifyCustomAuth(signParams: CustomAuthSignParams, options?: Object): Promise<boolean>

參數說明:

  • signParams:授權簽名參數,CustomAuthSignParams 類型,必傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
userid 使用者 id string -
ts 時間戳 string -
sign 授權簽名 string -
  • options:配置項,Object 類型,選傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
ignoreAuthorized 忽略授權情況,預設 true boolean -

回傳值說明: 是否允許驗證自訂授權,Promise<boolean> 類型

範例:

import { parse } from '@polyv/utils/querystring';
import { CustomAuthSignParams } from '@polyv/live-watch-sdk';

async function example {
  const queryParams = parse(window.location.search.slice(1));
  const signParams: CustomAuthSignParams = {
    userid: queryParams.userid || '',
    ts: queryParams.ts || '',
    sign: queryParams.sign || '',
  };

  const allowVerify = watchCore.auth.allowToVerifyCustomAuth(signParams);
  if (allowVerify) {
    // TODO 验证自定义授权
  }
}

2.2 驗證自訂授權簽名參數

從授權平台跳轉回觀看頁後,透過 verifyCustomAuth 進行自訂授權參數驗證,在呼叫前請呼叫 allowToVerifyCustomAuth 判斷簽名參數是否符合要求。

Api 方法: verifyCustomAuth(signParams: CustomAuthSignParams, queryParams: object): Promise<VerifyCustomAuthResult>

參數說明:

  • signParams:授權參數,CustomAuthSignParams 類型,必傳,詳細類型說明如下
參數名 說明 類型 必須 預設值
userid 使用者 id string -
ts 時間戳 string -
sign 授權簽名 string -
  • queryParams:連結參數,object 類型,必傳

回傳值說明: 授權結果,Promise<VerifyCustomAuthResult> 類型

範例:

import { parse } from '@polyv/utils/querystring';
import { CustomAuthSignParams } from '@polyv/live-watch-sdk';

async function example {
  const queryParams = parse(window.location.search.slice(1));
  const signParams: CustomAuthSignParams = {
    userid: queryParams.userid || '',
    ts: queryParams.ts || '',
    sign: queryParams.sign || '',
  };

  const allowVerify = watchCore.auth.allowToVerifyCustomAuth(signParams);
  if (!allowVerify) {
    return;
  }

  const result = await watchCore.auth.verifyCustomAuth(signParams, queryParams);
  if (result.success) {
    handleAuthVerifySuccess(result);
  } else {
    handleAuthVerifyFail(result);
  }
}

2.3 允許自動重新導向到自訂授權位址

授權模組提供方法用於在觀眾進入觀看頁,直接重新導向到自訂授權位址,無需經過引導頁,內部判斷條件如下:

  • 觀眾未授權
  • 管理後台只設定了自訂授權
  • 管理後台關閉引導頁開關

Api 方法: allowAutoRedirectCustomAuthUrl(): Promise<boolean>

回傳值說明: 是否自動重新導向,Promise<boolean> 類型

範例:

const allowAutoRedirect = await watchCore.auth.allowAutoRedirectCustomAuthUrl();
// 当前不需要显示引导页,直接跳到自定义授权地址
if (allowAutoRedirect) {
  watchCore.auth.redirectCustomAuthUrl();
}

2.4 取得自訂授權的位址

當使用者點擊授權按鈕時,透過該方法取得自訂授權連結並進行跳轉。

Api 方法: getCustomAuthUrl(): Promise<CustomAuthUrlData>

回傳值說明: 自訂授權跳轉位址資訊,Promise<CustomAuthUrlData> 類型,詳細類型說明如下

屬性名 說明 類型
customAuthUrl 自訂授權跳轉位址 string

範例:

document.querySelector('button').addEvenListener('click', async () => {
  const data = await watchCore.auth.getCustomAuthUrl();
  window.location.href = data.customAuthUrl;
});

2.5 重新導向到自訂授權位址

如果不呼叫 getCustomAuthUrl 取得授權位址,開發者可以呼叫 redirectCustomAuthUrl 進行跳轉,透過方法回傳的結果判斷頁面是否被跳轉。

Api 方法: redirectCustomAuthUrl(): Promise<boolean>

回傳值說明: 是否重新導向,Promise<boolean> 類型

範例:

const result = await watchCore.auth.redirectCustomAuthUrl();
if (result.success) {
  console.log('页面已重定向');
} else {
  console.log('重定向失败,原因:', result.failReason);
}
联系客服,在线咨询