【对外】ABI OpenAPI 用户手册

💡
字节内使用请将sessionid替换为titan_passport_id
1.
整体流程
1.
为每一个openapi调用方生成一个client id 和 client secret,并且要求每一个client绑定一个真实的用户身份(通过用户的sessionid),形成信任链
2.
用户使用 client id / secret 调用接口交换包含用户身份信息的jwt token
3.
用户在调用业务接口时在请求头部带上jwt token,例如:
Authorization: Bearer jwt_token
4.
ABI在接口被调用时,使用公钥校验jwt token,完成限流检查、审计
5.
在调用任意一个 ABI 接口时,为了便于后续问题的排查,建议在请求的 headers 中添加 `x-request-id` 和 `request-id`(保证唯一字符串即可), 需要两个 header 是因为 abi 整体组件比较多,各个组件之间使用的标记可能不同。这两个参数会被输入到 ABI 的后端日志中,为您在遇到问题时进行分析和定位提供有力的支持,从而更高效地解决可能出现的故障。
6.
不同环境 token 不互通,例如在 cn 环境申请了 token,不可以拿到 va 或者其他环境使用。
7.
返回业务结果
整体流程如下:
客户端
鉴权服务
(ABI后端)
业务服务
申请 client id / secret
返回 client id / secret
申请 jwt token
返回 jwt token
请求业务接口
记录 client 信息
校验 client 信息,
使用私钥签发 jwt token
请求公钥
返回公钥
校验 jwt token,
并获取用户身份
审计
限流、封禁检查
处理业务逻辑
返回请求结果
业务方只需要做一次,后续通过client id / secret获取token