由于客户端对接与平台页面无法产生信息交互,所以需与web版实验区分开做特殊登录获取用户信息接口
平台提供使用token登录的方式供实验资源获取用户信息及实验记录ID(eid),用于对应当前实验产生成绩回传
Host说明:
接口URL的Host是指 平台访问链接前缀
例:测试平台登录页面为:http://rp.owvlab.net/virexp/login
Host则是:http://rp.owvlab.net/virexp/
*测试完成后不知道正式平台的Host可以找项目负责人提供
平台在实验操作页提供token,客户端启动后,提供token验证码填写页,学生复制平台token到客户端中,客户端使用token调用http接口获取用户信息及实验记录ID(eid)
注:若测试完成后进入正式平台页面没有显示token,可找平台这边的项目负责人沟通增加.
进入实验客户端实验窗口粘贴token到实验内即可
对于web版实验,平台会在web实验链接后面拼接一个token参数,使用代码获取到链接后面的token即可
//js获取链接参数:
var token = getUrlParam("token");
//获取参数
function getUrlParam (name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
url: Host/outer/getMessageByToken
请求参数
参数名 | 数据类型类型 | 数值 |
---|---|---|
param | string | {"token":"从平台复制的token"} (base64加密) |
postman示例:
返回参数(base64加密)
正确返回(base64解码后):
{
"status":"000",
"eId":"8a8091076c28614a016c286748760028",
"userId":"8a808baf66f6f2ac0166f6f6bf2e004c",
"numberId":"3242342",
"name":"张三",
"groupName":"无",
"role":"student"
}
错误信息返回(base64解码后):
{
"status":"909",
"statusMessage":"token失效"
}
返回字段名称 | 数据类型及各式定义 | 字段含义 |
---|---|---|
status | String | 状态码 |
eId | String | 实验记录ID |
userId | String | 学生id |
name | String | 姓名 |
numberId | String | 学生学号 |
groupName | String | 班级 |
role | String | 角色(student/teacher) |
登录完成
接下来就可以使用eid调用接口回传给平台数据
详情参考接口文档
通过此接口可以使用账号密码登录平台,获取用户信息及学生已被安排的所有实验记录列表
注意:由于实验空间账号密码平台无法获取,故此接口不支持实验申报使用!
url: Host/outer/login
1.请求参数
参数名 | 数据类型类型 | 数值 |
---|---|---|
param | string | {"account":"用户名","password":"用户密码","esid":"实验资源唯一标识符"} (base64加密) |
注:esid统一由资源方自定义提供,建议“实验名称缩写+日期=esid”,例如:电子电路实验:dzdlsy20190801,用以区分实验资源。
base64编码
postman示例:
2.返回数据
正确返回:
{
"role":"student",
"numberId":"xuesheng",
"name":"学生",
"resourceId":"2c9180d66ef7be31016f372f36bd0bdb",
"expList":[
{
"id":"2c9180d66ef7be310170c3d27e9b6728",
"expName":"java从入门到入土",
"name":"java从入门到入土",
"lectureName":"示范性实验",
"teacher":"欧阳",
"createTime":"2020-03-10 09:41:57"
},
{
"id":"2c9180d66ef7be31016f372fd61e0bef",
"expName":"java从入门到入土",
"name":"java从入门到入土",
"lectureName":"示范性实验",
"teacher":"欧阳",
"createTime":"2019-12-24 09:17:19"
}
],
"status":"000",
"statusMessage":"登陆成功!"
}
错误信息返回:
{
"status":"101",
"statusMessage":"用户信息不存在!"
}
3.返回参数说明
返回字段名称 | 数据类型及各式定义 | 字段含义 |
---|---|---|
status | String | 状态码 |
role | String | 角色类型(student,teacher) |
numberId | String | 学号或工号 |
name | String | 姓名 |
className | String | 所属班级 |
resourceId | String | 实验资源id |
expList | List | 实验信息列表 |
expList:
返回字段名称 | 数据类型及各式定义 | 字段含义 |
---|---|---|
id | String | 实验记录唯一标识符(EID) |
expName | String | 实验名称 |
lectureName | String | 开课名称 |
teacher | String | 所属教师 |
createTime | String | 开始时间 |
注意:expList为学生在平台的生成实验记录列表,如果只有一条,可直接获取第一条,若存在多条,需将列表里的信息展示出来供学生选择对应的实验记录,主要是实验验记录ID(eid)的选择,后面的成绩对接及实验报告接口等都需要此eid
4.若测试平台获取expList为空,需先进入测试平台生成一条学生记录,再调用接口获取:
测试平台进入
进入实验操作页:
再调用接口即可获取expList
完成登录获取到用户信息及实验记录id(eid)后,请根据对接群文件里的<虚拟仿真平台通用接口文档.pdf>对接http接口即可