一、TUTK服務(wù)第三方認(rèn)證核心邏輯
TUTK服務(wù)在使用前,需驗(yàn)證用戶(hù)是否有權(quán)使用該服務(wù),核心邏輯如下:
1. TUTK服務(wù)API必須包含服務(wù)所需的域(realm)及其他必要參數(shù);
2. TUTK服務(wù)需預(yù)設(shè)"realm(領(lǐng)域)"與"驗(yàn)證API"的映射關(guān)系;
3. "validation"為自定義驗(yàn)證數(shù)據(jù),若為二進(jìn)制數(shù)據(jù)需進(jìn)行base64編碼;
4. 當(dāng)TUTK服務(wù)需要驗(yàn)證用戶(hù)時(shí),根據(jù)"realm"調(diào)用對(duì)應(yīng)的驗(yàn)證API,并將"validation"傳遞給第三方服務(wù)器;
5. 僅當(dāng)?shù)谌津?yàn)證服務(wù)返回200狀態(tài)碼時(shí),用戶(hù)方可使用服務(wù)。
2. TUTK服務(wù)需預(yù)設(shè)"realm(領(lǐng)域)"與"驗(yàn)證API"的映射關(guān)系;
3. "validation"為自定義驗(yàn)證數(shù)據(jù),若為二進(jìn)制數(shù)據(jù)需進(jìn)行base64編碼;
4. 當(dāng)TUTK服務(wù)需要驗(yàn)證用戶(hù)時(shí),根據(jù)"realm"調(diào)用對(duì)應(yīng)的驗(yàn)證API,并將"validation"傳遞給第三方服務(wù)器;
5. 僅當(dāng)?shù)谌津?yàn)證服務(wù)返回200狀態(tài)碼時(shí),用戶(hù)方可使用服務(wù)。
(一)驗(yàn)證流程示意圖

(二)驗(yàn)證接口定義
1. 接口請(qǐng)求信息
| 請(qǐng)求項(xiàng) | 具體說(shuō)明 |
|---|---|
| 請(qǐng)求方法 | POST |
| 請(qǐng)求地址 | https://3rd-party-service-domain/{api}({api}由第三方自定義) |
| 請(qǐng)求頭 | Content-Type: application/jsonAuthorization: {authType} {authToken} |
2. 請(qǐng)求參數(shù)說(shuō)明
| 參數(shù)位置 | 參數(shù)名 | 類(lèi)型 | 是否必填 | 說(shuō)明 |
|---|---|---|---|---|
| 請(qǐng)求頭 | authToken | String | 是 | 需要驗(yàn)證的token |
authType | String | 是 | token類(lèi)型(如JWT、Bearer等) | |
| 請(qǐng)求體 | validation | String | 是 | 自定義驗(yàn)證數(shù)據(jù),二進(jìn)制數(shù)據(jù)需base64編碼,驗(yàn)證者需解碼后校驗(yàn) |
| 請(qǐng)求體 | 可選參數(shù) | - | 否 | 無(wú) |
3. 響應(yīng)參數(shù)說(shuō)明
| 響應(yīng)類(lèi)型 | 參數(shù)名/狀態(tài)碼 | 類(lèi)型 | 是否必填 | 說(shuō)明 |
|---|---|---|---|---|
| 響應(yīng)體(200狀態(tài)) | validateId | String | 是 | 驗(yàn)證服務(wù)器確認(rèn)用戶(hù)有效的標(biāo)識(shí) |
extraInfo | String | 否 | 服務(wù)調(diào)用方可用的額外信息 | |
| 狀態(tài)碼 | 200 | - | - | 用戶(hù)合法,驗(yàn)證通過(guò) |
| 狀態(tài)碼 | 401 | - | - | 用戶(hù)非法,驗(yàn)證失?。o(wú)響應(yīng)體) |
(三)請(qǐng)求與響應(yīng)示例
1. 驗(yàn)證請(qǐng)求示例(curl)
第三方認(rèn)證驗(yàn)證請(qǐng)求(curl命令)
// 驗(yàn)證請(qǐng)求curl示例
curl -XPOST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer thisisthetoken' \
-d '{
"validation": "SSEEDDGGEEDSSaasllkiiksie"
}' \
https://3rd-party-service-domain/{api}
2. 驗(yàn)證響應(yīng)示例
合法用戶(hù)響應(yīng)(HTTP 200)
{
"validateId": "123456767889",
"extraInfo": "extraInfo"
}
注意事項(xiàng)
validation參數(shù)若為二進(jìn)制數(shù)據(jù),必須先進(jìn)行base64編碼,第三方驗(yàn)證服務(wù)器需解碼后再校驗(yàn);- TUTK服務(wù)需提前配置realm與第三方驗(yàn)證API的映射關(guān)系,確保驗(yàn)證請(qǐng)求能準(zhǔn)確路由;
- 僅當(dāng)?shù)谌津?yàn)證返回
200狀態(tài)碼時(shí),視為驗(yàn)證通過(guò),其他狀態(tài)碼均視為驗(yàn)證失??; - 接口請(qǐng)求地址中的
{api}由第三方自定義,需在realm映射配置中明確對(duì)應(yīng)關(guān)系; - Authorization請(qǐng)求頭格式固定為"authType + 空格 + authToken",不可省略空格。
