API Token
用户可在设置中心创建、查看、测试和撤销 API Key,实现程序化访问与权限控制。
MuseMVP 基于 Better Auth 的 API Key 插件,为用户提供完整的 API Token 管理能力。登录用户可在 设置 → API Keys 页面(/app/settings/tokens)创建、查看、测试和撤销 API Key,用于程序化调用受保护的 API 接口。
访问入口
路径:/app/settings/tokens。需登录后访问,未登录用户将被重定向至登录页。
功能概览
创建 API Key
支持自定义名称、过期时间、前缀及元数据,创建后仅展示一次完整密钥。
查看与管理
列表展示所有 Key 的摘要信息,支持重命名、续期与撤销。
在线测试
内置测试面板,可验证 Key 有效性及剩余配额。
安全存储
密钥以哈希形式存储,仅创建时展示完整值,后续不可恢复。
页面与路由
| 路径 | 说明 |
|---|---|
/app/settings/tokens | API Token 管理页面,需登录 |
核心能力
创建 API Key
创建时可配置:
| 参数 | 说明 |
|---|---|
name | 可选,便于识别的名称 |
expiresIn | 可选,过期时间(秒) |
prefix | 可选,密钥前缀(便于识别来源) |
metadata | 可选,自定义元数据 |
密钥仅展示一次
创建成功后,完整密钥仅展示一次。请妥善保存,后续无法再次查看。
验证 API Key
通过 POST /api/api-keys/verify 可验证 Key 有效性:
// 请求体
{ "key": "your-api-key-string" }
// 响应(有效)
{
"valid": true,
"key": { "id", "name", "userId", "remaining", "expiresAt", ... },
"error": null
}
// 响应(无效)
{
"valid": false,
"key": null,
"error": { "code": "KEY_NOT_FOUND", "message": "..." }
}该接口由 authMiddleware 保护,需携带有效会话 Cookie。验证时会校验 Key 是否属于当前用户。
技术实现
数据流
前端:ApiKeyManager 使用 useApiKeysQuery 从 Better Auth 获取 Key 列表。
创建/更新/删除:通过 authClient.apiKey.create/update/delete 调用 Better Auth API。
验证:POST /api/api-keys/verify 调用 auth.api.verifyApiKey,并校验 userId 归属。
API 端点
| 方法 | 路径 | 说明 |
|---|---|---|
POST | /api/api-keys/verify | 验证 API Key 有效性(需登录) |
Better Auth 原生接口
创建、列表、更新、删除等操作由 Better Auth 的 apiKey 插件提供,通过 authClient.apiKey.* 调用。
在业务 API 中使用
若需在自定义 Hono 路由中校验 API Key,可参考 Better Auth 的 verifyApiKey 用法,或通过请求头传递 Key 后调用 auth.api.verifyApiKey 进行校验。校验通过后可根据返回的 userId 执行后续业务逻辑。