Hono API 接口文档

POST /users/register

用户注册接口,需提供邮箱、密码、用户名和 Turnstile 验证令牌。

请求体: { "email": "user@example.com", "password": "yourPassword", "userName": "可选用户名", "turnstileToken": "turnstile响应令牌" }
响应: { "ok": true, "email_id": "verificationId", "userName": "可选用户名", "email": "user@example.com", "user_id": "generatedUserId" }

POST /users/verify

验证邮箱验证码,激活用户账户。

请求体: { "id": "verificationId", "code": "123456" }
响应: { "ok": true }

POST /users/resend-code

重新发送邮箱验证码,需验证 Turnstile。

请求体: { "user_id": "existingUserId", "turnstileToken": "turnstile响应令牌" }
响应: { "ok": true }

GET /users/verify/:id/:code

点击式邮箱验证,通过链接激活账户。

响应: HTML 页面,显示“验证成功”或“验证失败”

POST /users/login

用户登录接口,验证邮箱、密码和 Turnstile。

请求体: { "email": "user@example.com", "password": "yourPassword", "turnstileToken": "turnstile响应令牌" }
响应: { "token": "authTokenString", "expires_at": 1680000000 }

POST /users/me/avatar

上传当前用户头像,必须使用 multipart/form-data,字段名为 avatar。

请求示例: Content-Type: multipart/form-data 字段 avatar: (image 文件)
响应: { "ok": true, "avatar_key": "avatars/userId/randomHex-filename.png" }

POST /users/delete

请求删除账户,系统会发送删除确认邮件。

响应: { "ok": true }

POST /users/delete/confirm

通过验证码确认并删除账户。

请求体: { "id": "deleteVerificationId", "code": "123456" }
响应: { "ok": true }

GET /users/delete/confirm/:id/:code

点击式删除确认,通过链接删除账户。

响应: HTML 页面,显示“账户已删除”或“删除失败”

GET /users/me/profile

获取当前用户的个人简介(profile 字段)。

响应: { "profile": "用户的个性签名或简介文本" }

POST /users/me/profile

更新当前用户的个人简介。

请求体: { "profile": "新的简介文本" }
响应: { "ok": true }

管理员接口

GET /admin/users

获取所有用户的信息列表(需要管理员权限)。

响应: [ { "id": "...", "email": "...", "user_name": "...", "is_active": 1, "is_admin": 0, "avatar_key": "...", "created_at": 1680000000 }, ... ]

POST /admin/users

创建新用户,可同时设置管理员权限。

请求体: { "email": "new@example.com", "password": "可选密码", "userName": "可选用户名", "is_admin": true }
响应: { "ok": true, "id": "newUserId" }

GET /admin/users/:id

获取指定用户的详情(需管理员权限)。

响应: { "id": "...", "email": "...", "user_name": "...", "avatar_key": "...", "is_admin": true, "is_active": true, "created_at": 1680000000 }

DELETE /admin/users/:id

删除指定用户(需管理员权限)。

响应: { "ok": true }

GET /admin/users/:id/profile

获取指定用户的个人简介(需管理员权限)。

响应: { "profile": "用户的简介文本" }

POST /admin/users/:id/profile

更新指定用户的个人简介(需管理员权限)。

请求体: { "profile": "新的简介文本" }
响应: { "ok": true }

POST /system/turnstile_site_key

获取 Cloudflare Turnstile 的站点密钥,不会返回私钥。

响应: { "turnstile_site_key": "yourSiteKey" }

ALL *

处理所有未匹配到的请求,返回 404。

响应: 'not found'