1.api接口说明 考试星api接口采用jwt规范。Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。 2.api参数配置 appId : 客户唯一标识符,由考试星提供,例如:14343。 appKey : 用于加密jwt,由考试星提供,例如:xf5ha3h67h4Ger34wh35p345h4。 3.api统一接口地址 **地址**: https://www.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo **jwtInfo**:jwt_info是用户根据jwt规范,用app_key将过期时间、action_id加密,生成的加密字符串 4.生成加密jwtInfo(java示例) (1).安装依赖 ~~~ <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.7.0</version> </dependency> ~~~ (2).生成加密字符串 生成jwtInfo加密字符串 ~~~ import io.jsonwebtoken.Jwts; String appKey = “xf5ha3h67h4Ger34wh35p345h4” String jwtInfo = Jwts.builder() .claim("exp", System. currentTimeMillis() + 1000*10) .claim("action_id", "201") .signWith(SignatureAlgorithm.HS256,app_key.getBytes("UTF-8") ).compact(); ~~~ (3).加密参数解释 ~~~ appKey:加密的私钥,由考试星提供。 exp:过期时间。 action_id:表示登录考试星动作(注意是下划线)。 ~~~ 5.action_id参数解释 不同的action_id代表不同的请求行为,目前开放的请求行为如下: | 请求行为编码 | 请求行为解释 | | --- | --- | | 201 | 考生登录 | | 202 | 修改考生信息 | 6.当前开放的请求接口 (1)考生登录请求接口: 地址:https://www.kaoshixing.com/api/company/data/:appId/?jwt=:jwtInfo 请求方法:post 请求参数: | 参数编号 |参数名称 | 参数值示例 | 参数描述 | | --- | --- | --- | --- | | 1 | user_id | 15635| 考生唯一标识(可以是字符数字混合,只需要保证唯一) | | 2 | user_name| 张三 | 考生姓名 | | 3 |password|e120ea280aa50693d5568d0071456460|考生密码(经MD5加密)| | 4| role | staff| 固定为staff | | 5| department | 总部/财务部 | 考生所属部门,如果有分级,请以半角左斜杠分割 | (action_id=201生成jwt加密字符串)返回结果: ~~~ {"msg": "success", "url": "https://www.kaoshixing.com/api/company/redirect/13245/? jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjo1LCJleHAiOj E0OTc5NTMxODguNjg0MTIxLCJhY3Rpb25faWQiOiIyMDEifQ.I3j56t_tVMX1GgH62d y-rIktqFRienFZTJ7VKgc6lPs"} ~~~ 拿到结果后重定向到这个url地址,考生即可登录到考试星。 (action_id=202生成jwt加密字符串)返回结果: ~~~ {"msg": "更新考生信息成功,更新考生部门成功"} ~~~