ticket_exchange.md 1.6 KB

统一认证平台 - 票据交互 (Ticket Exchange)

1. 概述

当用户已在 源应用 (Source App) 登录,需要无缝跳转到 目标应用 (Target App) 且实现免登录时,使用此接口。

Base URL: {{API_BASE_URL}}/simple (请根据实际部署环境替换)

2. 交互流程

  1. 源应用后端调用 POST /exchange 获取跳转 URL (包含目标应用的 Ticket)。
  2. 源应用前端重定向用户浏览器到该 URL。
  3. 目标应用接收请求,提取 ticket
  4. 目标应用后端调用 POST /validate 验证票据并登录用户。

3. 接口定义

3.1 获取跳转 URL (Exchange)

  • URL: POST /exchange
  • Content-Type: application/json

Request Body: | Field | Type | Required | Description | |---|---|---|---| | app_id | string | Yes | 源应用 ID | | target_app_id | string | Yes | 目标应用 ID | | user_mobile | string | Yes | 用户手机号 (身份标识) | | timestamp | int | Yes | 当前时间戳 | | sign | string | Yes | 签名 (使用源应用 Secret) |

Response (200):

{
  "ticket": "TICKET-for-target-app-...",
  "redirect_url": "http://target-app-b.com/sso/callback?ticket=TICKET-..."
}

: redirect_url 自动取自目标应用配置的 redirect_uris 的第一个地址。

3.2 验证票据 (Validate)

目标应用接收到 ticket 后进行验证。

  • URL: POST /validate
  • 注意: 此时 app_id目标应用 ID,签名需使用目标应用 Secret

4. 常见错误

  • 404 Not Found: 应用 ID 错误或用户不存在。
  • 400 Bad Request: 签名验证失败。