API 接口文档
Neko Clond 云控平台全部接口 · Base URL:https://clond.nekoaidev.top
鉴权方式
需要登录的接口支持两种鉴权:① 请求头 Authorization: Bearer <token>(邮箱登录返回);
② 自动携带的 neko_session Cookie(GitHub OAuth 登录后写入)。两者任一有效即可。
管理员接口(标记 admin)额外要求登录账号 role = admin,
由 GitHub 登录名(@xiaohondan 等,见环境变量 ADMIN_GITHUBS)或白名单邮箱(ADMIN_EMAILS)自动授予。
目录
公开 · 账号鉴权 · 第三方登录 · 云控(需登录) · 管理后台(需 admin)
公开接口
/api/health公开服务健康检查。
{ "ok": true }
账号鉴权
/api/register公开邮箱注册(密码 PBKDF2 加盐哈希)。命中 ADMIN_EMAILS 的邮箱自动成为管理员。
{ "email": "you@example.com", "password": "至少8位", "name": "可选昵称" }
{ "token": "<jwt>", "user": { "id": 1, "email": "...", "role": "user" } }
/api/login公开邮箱登录。命中管理员白名单则升级为 admin。
{ "email": "you@example.com", "password": "你的密码" }
curl -X POST https://clond.nekoaidev.top/api/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"12345678"}'
/api/me需登录获取当前用户信息(含 role)。
{ "user": { "id": 1, "email": "...", "name": "...", "provider": "github", "role": "admin" } }
/api/logout需登录注销当前会话(清除 Cookie)。
第三方登录
/api/auth/github公开跳转 GitHub 授权页。完成后回跳 /api/auth/github/callback 并写入会话 Cookie,重定向到 /dashboard.html。
/api/auth/github/callback公开GitHub OAuth 回调:换 token → 取资料 → 查找/创建用户 → 若登录名在 ADMIN_GITHUBS 则授予 admin → 签发会话。Microsoft 路由为 /api/auth/microsoft(/callback)(暂未启用)。
云控接口(需登录)
/api/stats需登录当前用户的概览统计:设备总数 / 在线数 / 今日任务 / 今日调用。
/api/devices需登录列出当前用户的设备(搜索 ?q=、按状态 ?status=)。
/api/devices需登录创建设备。
{ "name": "边缘节点-01", "type": "device", "status": "online", "ip": "10.0.0.5", "group_name": "default", "note": "可选备注" }
/api/devices/<id>需登录获取单个设备详情。
/api/devices/<id>需登录更新设备(名称/IP/状态/分组/备注)。
/api/devices/<id>需登录删除设备。
/api/tasks需登录列出当前用户的指令/任务下发记录。
/api/tasks需登录下发指令。指定 device_id 单台下发;不填则群发全部设备。
{ "command": "restart", "device_id": "设备ID 或留空群发" }
/api/logs需登录当前用户的 API 调用日志。
/api/call需登录API 调试器:服务端代发请求,带 SSRF 防护(拦截内网/回环地址),并写入调用日志。
{ "method": "GET", "url": "https://api.example.com/ping", "headers": {"X-Test":"1"}, "body": "可选请求体" }
管理后台接口(需 admin)
以下接口均校验 role = admin,非管理员返回 403。前端入口为隐蔽页面 /cabinet.html(不在导航展示,仅管理员登录后控制台出现入口)。
/api/admin/statsadmin全站统计:用户数 / 设备数 / 在线数 / 任务数 / 调用数等。
/api/admin/usersadmin列出全部用户(?q= 搜索,?role=admin|user 过滤)。
/api/admin/users/<id>admin修改用户角色。
{ "role": "admin" } // 或 "user"
/api/admin/devicesadmin全站设备(跨用户,含所属用户邮箱)。
/api/admin/tasksadmin全站任务(跨用户)。
/api/admin/logsadmin全站 API 调用日志(跨用户)。
Neko Clond API · 部署于 Cloudflare Pages Functions + D1 · 所有数据按 owner 隔离