講師單點登入
更新時間:2024-10-21 09:33:43
功能介紹
單點登入可以實現直接登入既有系統,免登入操作進入互動學堂後台,進行直播相關設定。
適用場景
互動學堂單點登入到講師上課頁面
介面流程
设置登录token --> 在讲师登录地址加上登录token和老师Id --> 上课页面
1、設定token
介面描述
1、讲师单点登录设置token接口
2、(timestamp, appId)参与sign签名,并和sign一起通过url传递,请求体参数不参与签名,通过post请求体传递【请设置请求头contentType:application/json】
3、接口支持https协议
介面URL
http://api.polyv.net/hi-class-api/open/teach/v1/set-token
請求方式
POST
介面限制
1、介面同時支援HTTP、HTTPS,建議使用HTTPS確保介面安全,介面呼叫有頻率限制,詳細請查看
請求參數描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| appId | true | String | 帳號appId【詳見取得金鑰】 |
| timestamp | true | Long | 當前13位毫秒級時間戳記,3分鐘內有效 |
| sign | true | String | 簽名,為32位大寫的MD5值【詳見簽名產生規則】 |
請求體參數描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| teacherId | true | String | 講師Id(teacherId) |
| token | true | String | 單點登入token,一次性有效,過期時間一個小時 |
範例
http://api.polyv.net/hi-class-api/open/teach/v1/set-token?appId=frlr1zazn3&sign=6387F30E550150DD7A1AB11376137A6E×tamp=1634631207876
請求體參數
{
"teacherId": "g3fdl05syf",
"token": "269gH563903OSUwylnAT"
}
回應參數描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| code | Integer | 回應狀態碼,200為成功返回,非200為失敗【詳見全域錯誤說明】 |
| status | String | 回應狀態文字資訊 |
| error | Error | 錯誤物件【詳見全域錯誤說明】 |
| data | Object | 請求成功或失敗時為空 【詳見data欄位描述】 |
data欄位描述
| 參數名 | 類型 | 說明 |
|---|---|---|
| status | Boolean | 成功:true,失敗:false |
Java請求範例
快速接入基礎程式碼請下載相關依賴原始碼, 點擊下載原始碼 ,下載後加入到自己的原始碼工程中即可。測試案例中的HttpUtil.java 和 LiveSignUtil.java 都包含在下載檔案中。
private static final Logger log = LoggerFactory.getLogger(VClassSSOTest.class);
/**
* 讲师单点登录
* @throws IOException
* @throws NoSuchAlgorithmException
*/
@Test
public void tokenLogin() throws IOException, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String appId = super.appId;
String appSecret = super.appSecret;
String timestamp = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/hi-class-api/open/teach/v1/set-token";
String teacherId = "g3fdl05syf";
String token = getRandomString(20);
//http 调用逻辑
Map<String, String> requestMap = new HashMap<>();
requestMap.put("appId", appId);
requestMap.put("timestamp", timestamp);
requestMap.put("sign", LiveSignUtil.getSign(requestMap, appSecret));
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("teacherId", teacherId);
jsonMap.put("token", token);
url = HttpUtil.appendUrl(url, requestMap);
String response = HttpUtil.postJsonBody(url, JSON.toJSONString(jsonMap), null);
log.info("测试讲师单点登录成功:{}", response);
//do somethings
}
回應範例
系統全域錯誤說明詳見全域錯誤說明
成功範例
{
"code": 200,
"status": "success",
"requestId": "5bc5c3a4a88a487192cb0256b1dadb7f.97.16346312121920507",
"data": null,
"success": true
}
異常範例
{
"code": 400,
"status": "error",
"data": "",
"error":{"code":xx,"desc":"错误描述"}
}
2、拼接位址登入
直接登入
透過上面API設定講師登入token之後,拼接位址如下:
https://s.vclass.com/live-web-hi-class/teacher/tokenLogin?teacherId=xxxx&token=ssss&lessonId=101
URL參數描述
| 參數名 | 必選 | 類型 | 說明 |
|---|---|---|---|
| teacherId | true | String | 講師Id(teacherId) |
| token | true | String | 單點登入token,一次性有效,過期時間一個小時 |
| lessonId | false | Integer | 非必傳參數,如果有傳這個參數可以跳轉到對應的課節,不傳,預設顯示課節列表 |
回應說明
正常登入後直接進入講師頁面
異常登入頁面會有相關提示
