一、简介
Ticket登录是由平台直接授权应用来代替用户授权,在平台上访问应用时会根据当前用户信息生成一个ticket,并将ticket作为参数带给开发者的应用,开发者的应用在获取到ticket后可调用平台的接口获取用户的信息,从而实现授权登录的过程。
二、Ticket实现机制与流程

登录流程介绍
- 用户登录后,请求进行应用跳转。
- 平台系统生成ticket与相关用户账号信息。
- 平台系统发起跳转请求并发送ticket至第三方应用。
- 第三方应用收到这个跳转请求与ticket,然后发请求并携带ticket到平台进行认证。
- 平台根据参数ticket进行验证,若通过验证,则返回用户帐号信息给第三方应用,否则,则返回相应的错误代号。
- 第三方应用校验用户账号信息,并返回相应用户登录后跳转的页面。
三、接口定义
1、接口概述
平台上访问应用时会根据当前用户信息生成一个Ticket,并将Ticket作为参数带给第三方应用,在获取到ticket后可调用平台的接口获取用户的信息。
(1)平台系统在回调地址拼接ticket跳转至第三方应用【第三方提供回调URL】
请求地址:${SSOURL}&ticket=a69c8765f1b7cc2fc3c66a3eee62fbe3b2
(2)第三方应用使用ticket请求平台用户信息
请求地址:${BASEURL}/nicezhuanye/ssoLogin/ticket?ticket=a69c8765f1b7cc2fc3c66a3eee62fbe3b2
2、平台->第三方应用
当用户在平台登录成功,并且请求前往第三方平台时,由平台向第三方平台发起单点登录请求调用。
| 参数名 | 类型 | 长度 | 约束 | 描述 |
|---|---|---|---|---|
| ticket | String | 40 | 必须 | 用于验证,获取用户帐号信息 |
3、第三方应用->平台
用户单点登录到第三方平台时,第三方平台根据取到的单点登录票据信息进行登录校验。
| 参数名 | 类型 | 长度 | 约束 | 描述 |
|---|---|---|---|---|
| ticket | String | 40 | 必须 | 用于验证,获取用户帐号信息 |
4、平台->第三方应用
| 参数名 | 类型 | 约束 | 描述 | |
|---|---|---|---|---|
| code | String | 必须 | 返回码,请参考附录 | |
| userInfo | Object | 必须 | 用户账号信息 | |
| message | String | 必须 | 验证结果描述信息 |
5、返回结果
5.1 教师返回结果
| 参数名 | 类型 | 约束 | 描述 |
|---|---|---|---|
| userName | String | 必须 | 用户账号 |
| userID | Long | 必须 | 用户主键 |
| gender | String | 非必须 | 性别:男、女 |
| cellPhone | String | 非必须 | 手机号码 |
| name | String | 必须 | 用户姓名 |
| schoolID | String | 必须 | 学校编码 |
| schoolName | String | 必须 | 学校名称 |
| roles | String | 必须 | 用户角色,角色信息参照附录 |
{
"code": 0,
"status": "success",
"result": {
"code": "0",
"userInfo": {
"userName": "15410170002",
"userID": "LUNiqCx+bTE4iAnG+UUi55A==",
"gender": -1,
"cellPhone": "15410170002",
"name": "老师2",
"schoolID": "C69M7f/iDwqNeWb701Dkng==",
"schoolName": "懂你升级学校7",
"roles": "SchoolAdmin"
},
"message": "获取成功"
}
}
5.2 学生返回结果
{
"code": 0,
"status": "success",
"result": {
"code": "0",
"userInfo": {
"userName": "10170001",
"userID": "Ld0C8tjAHFDOLHgFOIJmOGg==",
"gender": 1,
"cellPhone": "15610170001",
"name": "等哈1",
"gradeID": "1012023",
"gradeName": "高一",
"classID": "1",
"className": "1班",
"schoolID": "C69M7f/iDwqNeWb701Dkng==",
"schoolName": "懂你升级学校7",
"roles": "Student",
"extraField1": "",
"extraField2": "",
"extraField3": "10170001"
},
"message": "获取成功"
}
}
四、附录
返回代码说明
| 代码 | 说明 |
|---|---|
| 0 | 验证成功 |
| 1 | 验证失败 |
| 3 | 验证参数错误 |
用户角色#
| 角色类型 | 角色说明 |
|---|---|
| SchoolAdmin | 学校管理员 |
| GradeAdmin | 年级管理员 |
| SubjectLeader | 学科组长 |
| ClassAdmin | 班主任 |
| SubjectTeacher | 任课教师 |
| SchoolMaster | 校长 |
| EducationMaster | 教务主任 |
| Parent | 家长 |
| Student | 学生 |