保利威文档中心

幫助中心

觀看條件 - 獨立授權

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

一、設定資訊

1.1 獨立授權設定資訊

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

Interface 介面: AuthSettingItemDirect

屬性名 說明 類型
authType 條件類型 Direct
enabled 是否啟用 null | YN
directRedirectUri 授權失敗重新導向 url string

二、使用方式

2.1 允許驗證獨立授權

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

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

Api 方法: allowToVerifyDirectAuth(signParams: DirectAuthSignParams, options?: Object): Promise<boolean>

參數說明:

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

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

範例:

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

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

  const allowVerify = watchCore.auth.allowToVerifyDirectAuth(signParams);
  if (allowVerify) {
    // TODO 验证独立授权
  }
}

2.2 驗證獨立授權簽名參數

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

Api 方法: verifyDirectAuth(signParams: DirectAuthSignParams, queryParams: object): Promise<VerifyDirectAuthResult>

參數說明:

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

回傳值說明: Promise<VerifyDirectAuthResult> 類型

範例:

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

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

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

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

2.3 允許自動重新導向到獨立授權失敗頁面

當獨立授權失敗或沒有觀看頁地址沒有獨立授權簽名參數時,透過 allowAutoRedirectDirectAuthFailUrl 方法判斷是否自動跳轉到獨立授權失敗頁面,內部判斷條件如下:

  • 觀眾未授權
  • 管理後台只設定了獨立授權

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

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

範例:

// 验证独立授权失败之后 / 无独立授权签名参数
const allowAutoRedirect = await watchCore.auth.allowAutoRedirectDirectAuthFailUrl();
if (allowAutoRedirect) {
  watchCore.auth.redirectDirectAuthFailUrl();
}

2.4 取得獨立授權失敗的地址

Api 方法: getDirectAuthFailUrl(): Promise<DirectAuthFailUrlData>

從 v2.5.0

當獨立授權失敗或沒有觀看頁地址沒有獨立授權簽名參數時,透過該方法取得授權失敗自訂 URL 並進行跳轉 版本開始支援

回傳值說明: 獨立授權失敗地址資訊,Promise<DirectAuthFailUrlData> 類型,詳細類型說明如下

屬性名 說明 類型
directAuthFailUrl 獨立授權失敗跳轉地址 undefined | string

範例:

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

2.5 重新導向到獨立授權失敗地址

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

從 v2.5.0 如果不呼叫 getDirectAuthFailUrl 取得重新導向地址,開發者可以呼叫 redirectDirectAuthFailUrl 進行跳轉,透過方法回傳的結果判斷頁面是否被跳轉。 版本開始支援

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

範例:

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