保利威文档中心

幫助中心

單一登入後台

更新時間:2022-03-17 10:03:42

描述

单点登录可以实现在登录已有系统的状态下,免登录操作进入保利威的账号、保利威的直播子账号、频道、子频道后台,做直播相关设置

適用場景

Polyv 後台單一登入分為:帳號、直播子帳號、頻道、子頻道四種。

帳號:進入帳號後台,取得最高的管理員權限,管理所有頻道、子頻道,適合機構管理員的登入跳轉

直播子帳號:進入帳號後台,根據後台設定的對應帳號角色權限,擁有不同操作後台功能權限,適合機構不同角色員工的登入跳轉

頻道:進入頻道後台,僅取得當前頻道的管理員權限,可管理當前頻道及頻道下的子頻道,適合講師的登入跳轉

子頻道:僅可進入助教頁面,協助講師在直播中管理聊天室、發起互動功能等,適合助教、助理的登入跳轉

溫馨提示

當前文件中涉及介面域名 https://live.polyv.net (舊版直播後台)或 https://console.polyv.net (新版直播後台) 為 Polyv SaaS 的預設域名,如客戶做了 CNAME 客製,需修改為 CNAME 的對應域名進行呼叫;避免影響單一登入功能的使用。

如何操作

1.操作流程

2.呼叫介面說明
操作類型 設定 token 介面(點擊可查看詳細介面呼叫) 單一登入後台介面
帳號 https://api.polyv.net/live/v3/user/set-sso-token https://{后台域名}/v2/sso/userLogin.do
直播子帳號 https://api.polyv.net/live/v3/user/set-sso-token https://{后台域名}/v2/sso/userLogin.do
頻道 https://api.polyv.net/live/v2/channels/{channelId}/set-token https://{后台域名}/teacher/auth-login
子頻道 https://api.polyv.net/live/v2/channels/{accountId}/set-account-token https://{后台域名}/teacher/auth-login
註:上述表格中{後台域名}指的是當前使用的後台域名(如果當前使用直播舊版後台域名,則域名為 live.polyv.net;如果當前使用直播新版後台,則域名為 console.polyv.net; 如果客戶做了 CNAME 客製,需修改為 CNAME 的對應域名進行呼叫)。
3.操作步驟
Step1.設定單一登入 token 參數
介面 URL
1.根据操作类型(账号、频道、子频道)选择对应的设置token接口URL
    账号:https://api.polyv.net/live/v3/user/set-sso-token
    直播子账号:https://api.polyv.net/live/v3/user/set-sso-token
    频道:https://api.polyv.net/live/v2/channels/{channelId}/set-token
    子频道:https://api.polyv.net/live/v2/channels/{accountId}/set-account-token
2.接口说明
    支持格式:JSON
    请求方式:POST
    请求数限制:TRUE
    接口URL中的{channelId}为频道号
    token 参数请勿过于简单,建议使用16位随机字符串
    支持https协议
請求參數
參數名 必選 類型 說明
appId true String 從 API 設定中取得,在直播系統登記的 appId
timestamp true String 當前 13 位毫秒級時間戳,3 分鐘內有效
token true String 唯一的字串
sign true String 簽名,為 32 位大寫的 MD5 值
childEmail false String 直播子帳號的電子郵件帳號(呼叫子帳號單一登入時才需要提交該參數)
回應成功 JSON 範例
{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "success"
}
回應失敗 JSON 範例

未輸入 appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}
介面回傳欄位說明
參數名 說明
code 請求狀態回應碼
status 請求狀態
message 錯誤資訊
data 成功時回傳 success 字串
Step2.成功設定 token 介面後,呼叫單一登入後台介面進行授權登入操作。
介面 URL
1.根据操作类型(账号、频道、子频道)选择对应的单点登录后台接口URL
    账号:https://live.polyv.net/v2/sso/userLogin.do
    直播子账号:https://live.polyv.net/v2/sso/userLogin.do
    频道:https://live.polyv.net/teacher/auth-login
    子频道:https://live.polyv.net/teacher/auth-login
2.接口说明
    支持格式:JSON
    请求方式:GET
    请求数限制:TRUE
    用于获取token后授权登录直播后台
    支持https协议
操作類型為帳號的請求參數
參數名 必選 類型 說明
userId true String 帳號 id
token true String 透過帳號 token設定的 token 串,10 秒內且一次驗證有效
redirect true String 完成授權後重新導向地址,如Polyv 直播後台,使用 url 編碼
childEmail false String 直播子帳號的電子郵件帳號(呼叫子帳號單一登入時才需要提交該參數)
操作類型為頻道/子頻道的請求參數
參數名 必選 類型 說明
channelId true String 頻道號或子頻道號
token true String 透過頻道 token子頻道 token設定的 token 串,10 秒內且一次驗證有效
redirect true String 完成授權後重新導向地址,使用 url 編碼,如導播台統計分析 或 網頁開播:https://live.polyv.net/web-start/?channelId={频道号} 或 助教頁:https://live.polyv.net/assistant.html 注意:若做了 CNAME 需將 live.polyv.net 換成 CNAME 域名
回應成功範例

1.帳號/直播子帳號

驗證成功則會重新導向到相應的網頁,否則回傳錯誤

2.頻道/子頻道

驗證成功則會重新導向到相應的網頁,否則預設重新導向到相應的後台,驗證失敗則會重新導向到頻道登入頁

請求範例
<?php
function settoken(){
//接口需要的参数
// 注意点:需替换的参数有:$appId、$appSecret、$channelId、$token(token是我们自己设置的)
$appId = "";
$appSecret = "";
$token = "2222222";
$timestamp=time()*1000;
$userId="";
$channelId="";
$nickname="王老师";
$childEmail="xxx@polyv.net"

$params = array(
    'appId'=>$appId,
    'childEmail'=>$childEmail, // 子账号单点登录才需要该参数
    'token'=>$token,
    'timestamp'=>$timestamp
  );
//计算sign
foreach ($params as $key=>$value){
     $arr[$key] = $key;
    }
    sort($arr);
    $str = $appSecret;
    foreach ($arr as $k => $v) {
     $str = $str.$arr[$k].$params[$v];
    }
    $restr = $str.$appSecret;
    $sign = strtoupper(md5($restr));


//根据操作类型(账号、直播子账号、频道、子频道)设置对应的后台单点登录接口及定向地址。
$redirect = urlencode("https://live.polyv.net/#/teacher/$channelId/chatReview/");
$callbackUrl="https://live.polyv.net/teacher/auth-login?channelId=$channelId&token=$token&redirect=$redirect";

//根据操作类型(账号、直播子账号、频道、子频道)设置单点登录的token
$url="{设置token接口URL}?appId=$appId&timestamp=$timestamp&token=$token&sign=$sign&nickname=";

//输出接口请求结果
$result=json_decode(file_get_contents($url),true);
if($result["code"] == 200){
    echo "location.href='" . $callbackUrl . "'";
 }
}

?>
<script language="JavaScript">
function bt_click(){
  <?php 
    settoken(); 
    ?>
}
</script>
<input type="button" name="show" id="show" value="提交" onClick="bt_click();"/>
联系客服,在线咨询