Skip to main content

一、简介

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

二、Ticket实现机制与流程

登录流程介绍

  1. 用户登录后,请求进行应用跳转。
  2. 平台系统生成ticket与相关用户账号信息。
  3. 平台系统发起跳转请求并发送ticket至第三方应用。
  4. 第三方应用收到这个跳转请求与ticket,然后发请求并携带ticket到平台进行认证。
  5. 平台根据参数ticket进行验证,若通过验证,则返回用户帐号信息给第三方应用,否则,则返回相应的错误代号。
  6. 第三方应用校验用户账号信息,并返回相应用户登录后跳转的页面。

三、接口定义

1、接口概述

平台上访问应用时会根据当前用户信息生成一个Ticket,并将Ticket作为参数带给第三方应用,在获取到ticket后可调用平台的接口获取用户的信息。

(1)平台系统在回调地址拼接ticket跳转至第三方应用【第三方提供回调URL】

请求地址:${SSOURL}&ticket=a69c8765f1b7cc2fc3c66a3eee62fbe3b2

(2)第三方应用使用ticket请求平台用户信息

请求地址:${BASEURL}/nicezhuanye/ssoLogin/ticket?ticket=a69c8765f1b7cc2fc3c66a3eee62fbe3b2

2、平台->第三方应用

当用户在平台登录成功,并且请求前往第三方平台时,由平台向第三方平台发起单点登录请求调用。

参数名类型长度约束描述
ticketString40必须用于验证,获取用户帐号信息

3、第三方应用->平台

用户单点登录到第三方平台时,第三方平台根据取到的单点登录票据信息进行登录校验。

参数名类型长度约束描述
ticketString40必须用于验证,获取用户帐号信息

4、平台->第三方应用

参数名类型约束描述
codeString必须返回码,请参考附录
userInfoObject必须用户账号信息
messageString必须验证结果描述信息

5、返回结果

5.1 教师返回结果
参数名类型约束描述
userNameString必须用户账号
userIDLong必须用户主键
genderString非必须性别:男、女
cellPhoneString非必须手机号码
nameString必须用户姓名
schoolIDString必须学校编码
schoolNameString必须学校名称
rolesString必须用户角色,角色信息参照附录
{
"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学生