一、TUTK服务第三方认证核心逻辑
TUTK服务在使用前,需验证用户是否有权使用该服务,核心逻辑如下:
1. TUTK服务API必须包含服务所需的域(realm)及其他必要参数;
2. TUTK服务需预设"realm(领域)"与"验证API"的映射关系;
3. "validation"为自定义验证数据,若为二进制数据需进行base64编码;
4. 当TUTK服务需要验证用户时,根据"realm"调用对应的验证API,并将"validation"传递给第三方服务器;
5. 仅当第三方验证服务返回200状态码时,用户方可使用服务。
(一)验证流程示意图

(二)验证接口定义
1. 接口请求信息
| 请求项 | 具体说明 |
|---|---|
| 请求方法 | POST |
| 请求地址 | https://3rd-party-service-domain/{api}({api}由第三方自定义) |
| 请求头 | Content-Type: application/json Authorization: {authType} {authToken} |
2. 请求参数说明
| 参数位置 | 参数名 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| 请求头 | authToken | String | 是 | 需要验证的token |
| authType | String | 是 | token类型(如JWT、Bearer等) | |
| 请求体 | validation | String | 是 | 自定义验证数据,二进制数据需base64编码,验证者需解码后校验 |
| 请求体 | 可选参数 | - | 否 | 无 |
3. 响应参数说明
| 响应类型 | 参数名/状态码 | 类型 | 是否必填 | 说明 |
|---|---|---|---|---|
| 响应体(200状态) | validateId | String | 是 | 验证服务器确认用户有效的标识 |
| extraInfo | String | 否 | 服务调用方可用的额外信息 | |
| 状态码 | 200 | - | - | 用户合法,验证通过 |
| 状态码 | 401 | - | - | 用户非法,验证失败(无响应体) |
(三)请求与响应示例
1. 验证请求示例(curl)
curl -XPOST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer thisisthetoken' \
-d '{"validation":"SSEEDDGGEEDSSaasllkiiksie"}' \
https://3rd-party-service-domain/{api}2. 验证响应示例
合法用户(HTTP 200)
{
"validateId": "123456767889",
"extraInfo": "extraInfo"
}非法用户(HTTP 401)
// 无响应体
注意事项
1. validation参数若为二进制数据,必须先进行base64编码,第三方验证服务器需解码后再校验;
2. TUTK服务需提前配置realm与第三方验证API的映射关系,确保验证请求能准确路由;
3. 仅当第三方验证返回200状态码时,视为验证通过,其他状态码均视为验证失败;
4. 接口请求地址中的{api}由第三方自定义,需在realm映射配置中明确对应关系;
5. Authorization请求头格式固定为"authType + 空格 + authToken",不可省略空格。
