Unkey — API 密钥管理
用途
Unkey 是一个开源 API 密钥管理平台。面向需要为开发者平台、SaaS API 和内部服务提供 API 认证层的开发者,用于创建、校验和管理 API 密钥,从而无需自行构建密钥基础设施。
主要能力
密钥管理:通过 @unkey/api 的 Unkey 客户端,调用 unkey.keys.create 创建密钥,可设置 apiId、prefix 前缀、name 名称、ownerId 归属用户、meta 自定义元数据(如 plan、team)、roles 角色权限、ratelimit 速率限制(type、limit、duration)、remaining 总用量上限以及 expires 过期时间。创建结果返回 result.key(仅展示一次)与 result.keyId(用于后续管理)。
密钥校验:在 API 中使用 verifyKey,从 Authorization 请求头提取 Bearer 密钥,传入 key 与 apiId 进行校验。校验结果可判断 result.valid,错误码包括 NOT_FOUND、RATE_LIMITED、USAGE_EXCEEDED、EXPIRED;有效时可读取 ownerId、meta、roles、remaining、ratelimit,并可据此检查权限、在响应头返回 X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset 等速率限制信息。
密钥生命周期:通过 unkey.keys.update 更新密钥的速率限制、角色与元数据;通过 unkey.keys.delete 吊销密钥;通过 unkey.apis.listKeys 按 apiId 与 ownerId 列出某客户的密钥;通过 unkey.keys.getVerifications 查询某密钥在指定时间范围与粒度下的校验使用分析。
安装方式
npm install @unkey/api
使用方式与最佳实践
密钥前缀:使用 sk_live_、sk_test_ 等前缀,便于一眼识别密钥类型。速率限制:创建时设置按密钥速率限制,Unkey 在校验时强制执行。用量限制:设置 remaining 以支持预付费或配额模式,用量耗尽后密钥自动失效。RBAC 角色:为密钥分配角色,并在中间件中校验,按端点限定访问范围。密钥轮换:创建新密钥、更新客户端、吊销旧密钥,实现零停机轮换。元数据:在 meta 中存储 plan、team、environment,用于分析及功能开关。过期密钥:为试用、临时访问设置 expires,无需 cron 即可自动过期。自托管:可将 Unkey 部署在自有基础设施上,满足数据主权需求;项目为开源。
适用场景
需要为开发者平台、SaaS API、内部服务提供 API 认证与密钥管理的团队;需要按客户维度管理密钥、配额、权限和用量分析的场景。
限制与暂未提供信息
关于具体收费与价格、平台可用区域、性能上限、SLA 等事实,当前资料暂未提供。