mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
fix: APIKey列表费用及Token显示不准确的问题,目前显示总数
feat: 增加APIKey过期设置,以及到期续期的能力
This commit is contained in:
187
docs/api-key-expiry-guide.md
Normal file
187
docs/api-key-expiry-guide.md
Normal file
@@ -0,0 +1,187 @@
|
||||
# API Key 过期时间管理指南
|
||||
|
||||
## 概述
|
||||
|
||||
Claude Relay Service 支持为 API Keys 设置过期时间,提供了灵活的过期管理功能,方便进行权限控制和安全管理。
|
||||
|
||||
## 功能特性
|
||||
|
||||
- ✅ 创建时设置过期时间
|
||||
- ✅ 随时修改过期时间
|
||||
- ✅ 自动禁用过期的 Keys
|
||||
- ✅ 手动续期功能
|
||||
- ✅ 批量续期支持
|
||||
- ✅ Web 界面和 CLI 双重管理
|
||||
|
||||
## CLI 管理工具
|
||||
|
||||
### 1. 查看 API Keys
|
||||
|
||||
```bash
|
||||
npm run cli keys
|
||||
# 选择 "📋 查看所有 API Keys"
|
||||
```
|
||||
|
||||
显示内容包括:
|
||||
- 名称和部分 Key
|
||||
- 活跃/禁用状态
|
||||
- 过期时间(带颜色提示)
|
||||
- Token 使用量
|
||||
- Token 限制
|
||||
|
||||
### 2. 修改过期时间
|
||||
|
||||
```bash
|
||||
npm run cli keys
|
||||
# 选择 "🔧 修改 API Key 过期时间"
|
||||
```
|
||||
|
||||
支持的过期选项:
|
||||
- ⏰ **1小时后**(测试用)
|
||||
- 📅 **1天后**
|
||||
- 📅 **7天后**
|
||||
- 📅 **30天后**
|
||||
- 📅 **90天后**
|
||||
- 📅 **365天后**
|
||||
- ♾️ **永不过期**
|
||||
- 🎯 **自定义日期时间**
|
||||
|
||||
### 3. 批量续期
|
||||
|
||||
```bash
|
||||
npm run cli keys
|
||||
# 选择 "🔄 续期即将过期的 API Key"
|
||||
```
|
||||
|
||||
功能:
|
||||
- 查找7天内即将过期的 Keys
|
||||
- 支持全部续期30天或90天
|
||||
- 支持逐个选择续期
|
||||
|
||||
### 4. 删除 API Keys
|
||||
|
||||
```bash
|
||||
npm run cli keys
|
||||
# 选择 "🗑️ 删除 API Key"
|
||||
```
|
||||
|
||||
## Web 界面功能
|
||||
|
||||
### 创建时设置过期
|
||||
|
||||
在创建 API Key 时,可以选择:
|
||||
- 永不过期
|
||||
- 1天、7天、30天、90天、180天、365天
|
||||
- 自定义日期
|
||||
|
||||
### 查看过期状态
|
||||
|
||||
API Key 列表中显示:
|
||||
- 🔴 已过期(红色)
|
||||
- 🟡 即将过期(7天内,黄色)
|
||||
- 🟢 正常(绿色)
|
||||
- ♾️ 永不过期
|
||||
|
||||
### 手动续期
|
||||
|
||||
对于已过期的 API Keys:
|
||||
1. 点击"续期"按钮
|
||||
2. 选择新的过期时间
|
||||
3. 确认更新
|
||||
|
||||
## 自动清理机制
|
||||
|
||||
系统每小时自动运行清理任务:
|
||||
- 检查所有 API Keys 的过期时间
|
||||
- 将过期的 Keys 标记为禁用(`isActive = false`)
|
||||
- 不删除数据,保留历史记录
|
||||
- 记录清理日志
|
||||
|
||||
## 测试工具
|
||||
|
||||
### 1. 快速测试脚本
|
||||
|
||||
```bash
|
||||
node scripts/test-apikey-expiry.js
|
||||
```
|
||||
|
||||
创建5个测试 Keys:
|
||||
- 已过期(1天前)
|
||||
- 1小时后过期
|
||||
- 1天后过期
|
||||
- 7天后过期
|
||||
- 永不过期
|
||||
|
||||
### 2. 迁移脚本
|
||||
|
||||
为现有 API Keys 设置默认30天过期时间:
|
||||
|
||||
```bash
|
||||
# 预览(不实际修改)
|
||||
npm run migrate:apikey-expiry:dry
|
||||
|
||||
# 执行迁移
|
||||
npm run migrate:apikey-expiry
|
||||
```
|
||||
|
||||
## 使用场景
|
||||
|
||||
### 1. 临时访问
|
||||
|
||||
为临时用户或测试创建短期 Key:
|
||||
```bash
|
||||
# 创建1天有效期的测试 Key
|
||||
# 在 Web 界面或 CLI 中选择"1天"
|
||||
```
|
||||
|
||||
### 2. 定期更新
|
||||
|
||||
为安全考虑,定期更新 Keys:
|
||||
```bash
|
||||
# 每30天自动过期,需要续期
|
||||
# 创建时选择"30天"
|
||||
```
|
||||
|
||||
### 3. 长期合作
|
||||
|
||||
为可信任的长期用户:
|
||||
```bash
|
||||
# 选择"365天"或"永不过期"
|
||||
```
|
||||
|
||||
### 4. 测试过期功能
|
||||
|
||||
快速测试过期验证:
|
||||
```bash
|
||||
# 1. 创建1小时后过期的 Key
|
||||
npm run cli keys
|
||||
# 选择修改过期时间 -> 选择测试 Key -> 1小时后
|
||||
|
||||
# 2. 等待或手动触发清理
|
||||
# 3. 验证 API 调用被拒绝
|
||||
```
|
||||
|
||||
## API 响应
|
||||
|
||||
过期的 API Key 调用时返回:
|
||||
```json
|
||||
{
|
||||
"error": "Unauthorized",
|
||||
"message": "Invalid or inactive API key"
|
||||
}
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **定期审查**:定期检查即将过期的 Keys
|
||||
2. **提前通知**:在过期前通知用户续期
|
||||
3. **分级管理**:根据用户级别设置不同过期策略
|
||||
4. **测试验证**:新功能上线前充分测试过期机制
|
||||
5. **备份恢复**:使用数据导出工具备份 Key 信息
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 过期的 Keys 不会被删除,只是禁用
|
||||
- 可以随时续期已过期的 Keys
|
||||
- 修改过期时间立即生效
|
||||
- 清理任务每小时运行一次
|
||||
Reference in New Issue
Block a user