认证
获取 Token
向服务管理员申请。管理员可在 Web 界面「Token 管理」页创建,或通过 API:
curl -X POST $HOST/api/v1/auth/tokens \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"my-app","username":"alice","role":"user"}'
响应(raw token 仅此一次返回,请立即保存):
{
"ok": true,
"token": "sk-memex-XXXXXXXXXXXXXXXX",
"token_id": "1"
}
自部署引导
自己部署的全新实例(数据库中尚无任何 token)首次创建 token 可免鉴权(bootstrap 通道)。 一旦库中存在任意有效 token,引导通道立即关闭。详见生产部署。
使用 Token
在请求头中携带:
Authorization: Bearer sk-memex-XXXXXXXXXXXXXXXX
SSE 接口(EventSource 不支持自定义 header)改用查询参数:
GET /api/v1/jobs/42/stream?access_token=sk-memex-XXXX
Token 管理端点
POST /api/v1/auth/tokens
创建 token。
{ "name": "ci-bot", "username": "alice", "role": "user" }
role 取值:user(只能操作自己的资源)或 admin(可见全部)。
GET /api/v1/auth/tokens
列出所有 token(不含 raw 值,仅显示前缀)。需 admin 权限。
POST /api/v1/auth/tokens/revoke
吊销 token:{ "token_id": "3" }
GET /api/v1/auth/me
返回当前 token 的 username、role、token_id。
角色与隔离
| 角色 | 权限 |
|---|---|
user | 只能看到/操作自己创建(owner)的 job 与 wiki |
admin | 可见并操作全部资源 |
越权访问他人资源返回 403 Forbidden。