跳到主要内容

鉴权

基址 https://admin.auroran.io。本地默认 http://127.0.0.1:3000

管理员用 EVM 钱包 personal_sign 登录;服务端校验签名后,再经链 RPC 确认该地址持 Admin 角色,签发进程内 opaque session(24h)。

GET /api/health

无鉴权。进程存活探针(不检查组件是否在跑)。

{ "ok": true, "version": "0.1.0" }

versionzepto-server crate 版本。

GET /api/auth/challenge

无鉴权。领取一次性 challenge(5 分钟有效)。

{ "challenge": "a1b2c3d4e5f6471890ab12cd34ef5678", "timestamp_ms": 1756440000000 }

客户端将 [challenge_bytes, timestamp_ms] 编成 msgpack 数组,再对该字节做 personal_sign

POST /api/auth/login

无鉴权。

Body:

{
"address": "0x…",
"timestamp_ms": 1756440000000,
"signature": "0x…"
}

timestamp_ms 须与 challenge 响应一致。服务端对未过期 challenge 做恢复地址,与 address 忽略大小写比对,再查链上 Admin。

200: { "token": "<hex>", "expires_at_secs": 1756526400 }

HTTP说明
400JSON 非法
401challenge 不存在 / 过期 / 签名不对
403地址不是链上 Admin
503链 RPC 不可用

后续请求:Authorization: Bearer <token>。token 也可不带 Bearer 前缀(不推荐)。

GET /api/auth/me

Bearer。再验一次链上 Admin。

{ "address": "0x…", "expires_at_secs": 1756526400 }
HTTP说明
401无 token / 无效 / 过期
403已不再是 Admin
503链 RPC 不可用