Files
hair/docs/接口42-52-72网关鉴权.md
T

2.5 KiB
Raw Blame History

42、52、72 号接口网关鉴权

接口 方法与路径 执行位置
42 POST /api/v1/face/features-42 网关按接口 52 的规则扶正裁切,再用接口 4 的分析结果和 Ft/Zy 判定生成特征
52 POST /api/v1/hairline/generate-52 网关转发至 worker
72 POST /api/v1/face/b-end-points 网关转发至 worker,底图与标注层转成 URL

客户端调用这三个接口时,在原请求上添加 Authorization: Bearer <access_token>。缺少、过期、签名无效或误用刷新令牌时,返回 HTTP 401 和业务码 1009。网关验证通过后,52 和 72 继续使用独立的 X-Internal-Token 转发至 worker,客户端令牌不会传给 worker。

登录

POST /api/v1/auth/login,请求体为 JSON,包含 username 和 password。当前用户名为 yonghe,密码使用约定的服务端固定值。

成功时 HTTP 200、code=0,data 包含:

字段 值
access_token 访问令牌
token_type Bearer
expires_in 900 秒
refresh_token 刷新令牌
refresh_expires_in 604800 秒,即 7 天

刷新

POST /api/v1/auth/refresh,请求体为 {"refresh_token":"登录返回的刷新令牌"}。成功后返回新的 access_token、token_type 和 expires_in。登录时的刷新令牌可以在原有效期内继续使用。到期后重新登录。登录或刷新失败时,响应包含 code、message、request_id 和 data: null。

网关配置

在 main 的网关环境中设置 HAIR_API_TOKEN_SECRET,或在未跟踪的 gateway/config.json 中设置 api_token_secret。使用独立且稳定的至少 32 字节随机值。签名密钥缺失时,签发或刷新返回 HTTP 503 和业务码 1007。更换签名密钥会使已签发令牌失效。

网关保留原有 Ark、MediaPipe 与 BiSeNet 配置,42 的裁切还使用 Pillow。部署 72 前,确认所有可接收该请求的 worker 已部署含 72 号的版本(例如 ubuntu3090_debug 的 c9a47a7 或后续版本)。52、72 沿用现有 worker 池与图片 URL 改写流程。

网关测试页为 /static/test_interface42.html、/static/test_interface52.html 和 /static/test_interface72.html。页面可登录、手动刷新令牌并提交图片,访问令牌到期时自动刷新。「测试鉴权」使用 GET /api/v1/auth/check 验证无令牌请求返回 HTTP 401、有效令牌请求返回 HTTP 200,测试时无需上传照片或调用 worker。