后台单点登录

功能介绍

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

适用场景

保利威后台单点登录分:账号、频道、子频道三种。
账号:进入账号后台,获取最高的管理员权限,管理所有频道、子频道,适合机构管理员的登录跳转
频道:进入频道后台,仅获取当前频道的管理员权限,可管理当前频道及频道下的子频道,适合讲师的登录跳转
子频道:仅可进入助教页面,协助讲师在直播中管理聊天室、发起互动功能等,适合助教、助理的登录跳转

温馨提示

当前文档中涉及接口域名 https://live.polyv.net 为保利威saas的默认域名,如客户做了cname定制,需修改为cname的对应域名进行调用;避免影响单点登录功能的使用。

如何操作

1.操作流程图
sso
2.调用接口说明

操作类型 设置token接口(点击可查看详细接口调用) 单点登录后台接口
账号 https://api.polyv.net/live/v3/user/set-sso-token https://live.polyv.net/v2/sso/userLogin.do
频道 https://api.polyv.net/live/v2/channels/{channelId}/set-token https://live.polyv.net/teacher/auth-login
子频道 https://api.polyv.net/live/v2/channels/{accountId}/set-account-token https://live.polyv.net/teacher/auth-login

3.操作步骤

Step1.设置单点登录token参数

接口URL

1.根据操作类型(账号、频道、子频道)选择对应的设置token接口URL
    账号: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
    请求方式:GET,POST
    请求数限制:TRUE
    支持https协议
    接口URL中的{channelId}为 频道ID
    token 参数请勿过于简单,建议使用16位随机字符串

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
token string 唯一的字符串
sign string 签名,为32位大写的MD5值

响应成功JSON示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "success"
}

响应失败JSON示例

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

接口返回字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 成功时候返回,success

Step2.成功设置token接口后,调用单点登录后台接口进行授权登录操作。

接口URL

1.根据操作类型(账号、频道、子频道)选择对应的单点登录后台接口URL
    账号: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
    支持https协议
    接口用于获取token后授权登录直播后台

操作类型为账号的请求参数

参数名 必选 类型 说明
userId string 账号id
token string 通过账号token设置的token串,10秒内且一次验证有效
redirect string 完成授权后重定向地址,使用url编码

操作类型为频道/子频道的请求参数

参数名 必选 类型 说明
channelId string 频道号或子频道号
token string 通过频道token子频道token设置的token串,10秒内且一次验证有效
redirect string 完成授权后重定向地址,使用url编码,如导播台统计分析 或 网页开播:https://live.polyv.net/web-start/?channelId={频道号} 或 助教页:https://live.polyv.net/assistant.html 注意:若做了cname需将live.polyv.net换成cname域名

响应成功示例

1.账号:
有填写了redirect,并且验证成功则会重定向到相应的网页,否则返回错误
2.频道/子频道
有填写了redirect,并且验证成功则会重定向到相应的网页,否则默认重定向到相应的后台,验证失败则会重定向到频道登录页

请求示例

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

$params = array(
    'appId'=>$appId,
    '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="https://api.polyv.net/live/v2/channels/$channelId/set-token?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();"/>
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...