MuseMVP 文档

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/tokensAPI Token 管理页面,需登录
src/app/(saas-page)/app/(account)/settings/tokens/page.tsx
src/modules/settings/components/api-keys/ApiKeyManager.tsx
src/modules/settings/lib/api-keys.ts
src/modules/settings/lib/api-keys.server.ts

核心能力

创建 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 执行后续业务逻辑。


相关文档