单点登录
- 接口(建议后缀):/sso/login
- Method:GET 或 POST(二选一,响应方式有所不同)
- 调用方:每刻
- 接口说明:员工通过每刻单点登录到第三方
请求参数
字段 |
类型 |
必填 |
描述 |
externalApprovalNo |
String |
[1] |
申请单在第三方唯一标识 |
externalCorpCode |
String |
Y |
企业在第三方唯一标识 |
externalEmployeeCode |
String |
Y |
员工在第三方唯一标识 |
orderId |
String |
[2] |
订单号 |
operationId |
String |
[2] |
操作号 |
page |
String |
N |
跳转页面 |
type |
String |
N |
设备类型 |
coordinates |
List<Coordinate> |
N |
设备定位坐标(支持同时传多种坐标系,默认只传高德坐标系)GET 模式在 url 参数中为 &coordinates=%5Blongitude%3A114.123%2Clatitude%3A514.123%2CcoordinateType%3AGAODE%5D |
tokenId |
String |
[3] |
token |
sign |
String |
[4] |
校验参数 |
timestamp |
String |
[4] |
校验时间戳 (毫秒级) |
[info] 说明:
[1] 如果参数中 externalApprovalNo 非空,基于 externalApprovalNo 跳转,否则按照 page 参数跳转。
[2] orderId 和 operationId 是成对出现的,如果带了 orderId 就一定会有 operationId,但是第三方可以选其一进行解析,实现跳转到指定订单的详情页面。
[3] tokenId 是否必传根据第三方来约定,且如果请求方式为 GET 在请求参数中,如果为 POST 则在请求头中。
[4] 如果第三方对于单点登录的安全性有要求的话,可以实现这个校验逻辑,校验逻辑并不是必须要实现的。
跳转页面
code |
定义 |
index or 未传 |
首页 |
hotel |
酒店搜索页 |
flight |
机票搜索页 |
train |
火车票搜索页 |
car |
用车搜索页 |
meal |
用餐票搜索页 |
设备类型
code |
定义 |
PC |
PC 端 |
MOBILE |
移动端 |
Coordinate
字段 |
类型 |
必填 |
描述 |
longitude |
String |
Y |
经度 |
latitude |
String |
Y |
纬度 |
coordinateType |
CoordinateType |
Y |
坐标系(默认高德) |
CoordinateType
code |
定义 |
GAODE |
高德 |
BAIDU |
百度 |
校验参数
[info] 校验参数 sign 的生成规则:
在参数列表中增加 externalCorpSecret (企业在 TMC 中的认证密码),按照属性名称进行升序排序按照 URL 参数形式进行属性字符串拼接将拼接好的参数进行 MD5 哈希,得到的小写签名作为 sign
coordinates 不参与加签
示例:
{
"externalApprovalNo": "",
"externalCorpCode": "6143735468535327742",
"externalEmployeeCode": "emp001",
"externalCorpSecret": "corp_secret",
"orderId": "",
"operationId": "",
"page": "flight",
"type": "PC",
"tokenId": "123456",
"timestamp": 1614045878555
}
1. 将以上参数进行字符串升序排序
['externalApprovalNo', 'externalCorpCode', 'externalCorpSecret', 'externalEmployeeCode', 'orderId', 'operationId', 'page', 'timestamp', 'tokenId', 'type']
2. 按照 URL 参数形式拼接
externalApprovalNo=&externalCorpCode=6143735468535327742&externalCorpSecret=corp_secret&externalEmployeeCode=emp001&orderId=&operationId=&page=flight×tamp=1614045878555&tokenId=123456&type=PC
3. 最后做一次 MD5 哈希
f45e6b947264d06171be52fccc973dd1
返回参数
以下返回参数只在 POST 请求时才需要返回, 使用 GET 跳转方式则直接在用户请求时 302 跳转到第三方具体页面即可
字段 |
类型 |
必填 |
描述 |
success |
bool |
Y |
请求是否成功 |
errorMessage |
String |
N |
失败原因 |
data |
String |
Y |
SSO URL |