“单点登录接口开发文档”的版本间的差异
来自成绩云帮助中心
(创建页面,内容为“== <p style="background:#6a9ee4;padding:8px 12px;color:#ffffff;">前言</p> == 本文档针对只做单点登录、不做数据同步的平台而编写。 接入...”) |
(→签名参数sign生成说明) |
||
第85行: | 第85行: | ||
$data = array( | $data = array( | ||
− | ' | + | 'orgId' => 'testSchool', |
− | ' | + | 'role' => '教师', |
− | 'timestamp' => 1639017000 | + | 'name' => '李老师', |
+ | 'timestamp' => 1639017000, | ||
); | ); | ||
$sign = sign($data, $key); | $sign = sign($data, $key); | ||
</pre> | </pre> | ||
− | + | 注意:一般接口会有一个timestamp参数,如无特别说明,timestamp的有效时间为7200秒,超过该时长请求无效,以降低受到重放攻击的风险。 |
2022年2月22日 (二) 16:04的版本
前言
本文档针对只做单点登录、不做数据同步的平台而编写。
接入知未产品单点登录的平台需要先联系知未科技研发,获取2个基本参数:平台ID[platform],平台密钥[key]。这两个参数也可以反过来向知未科技提供。
单点登录
第三方平台按如下方式构造知未产品(例如“成绩分析”)的入口链接:
- 接口说明
请求方式:GET
请求URL: [serverBaseUrl]/good-class/api/import?platform=[platform]×tamp=[timestamp]&sign=[sign]
URL参数说明:
参数 | 类型 | 是否必填 | 描述 |
platform | string | 是 | 平台ID |
timestamp | int | 是 | 时间戳(Unixtime),有效时长600秒 |
sign | string | 是 | 签名,只对platform和timestamp签名,不用对POST数据内容签名。详见签名参数sign生成说明 |
POST数据结构参数:
参数 | 类型 | 描述 |
id | string | 记录ID,用于确认记录是否已经导入过。 |
grade | string | 年级 |
className | string | 班别 |
name | string | 姓名 |
time | int | 记录事件发生时间戳(Unixtime),相当于打卡时间。 |
event | string | 事件。例如“异常”、“晚归“、“迟到”、“未到寝“。 |
签名参数sign生成说明
第一步:
对传入的参数按照键名排序
第二步:
使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
第三步:
在stringA最后拼接上“&key=[平台密钥]”得到stringSignTemp字符串,并对stringSignTemp进行MD5运算
第四步:
得到最终请求字符串sign
PHP签名算法示例:
// $key 平台密钥 function sign($data, $key) { ksort($data); // 正向排序 $key_str = urldecode(http_build_query($data)); // 连接字符串 $key_str .= '&key=' . $key; // 拼接key return md5($key_str); } $data = array( 'orgId' => 'testSchool', 'role' => '教师', 'name' => '李老师', 'timestamp' => 1639017000, ); $sign = sign($data, $key);
注意:一般接口会有一个timestamp参数,如无特别说明,timestamp的有效时间为7200秒,超过该时长请求无效,以降低受到重放攻击的风险。