mirror of
https://github.com/Wei-Shaw/claude-relay-service.git
synced 2026-01-23 00:53:33 +00:00
fix: 修复PR #458中的totalCostLimit功能问题
主要修复: - 移除重复的totalUsageLimit字段,统一使用totalCostLimit - 删除auth.js中重复的总费用限制检查逻辑 - 删除admin.js中重复的totalCostLimit验证代码 - 更新所有前端组件,移除totalUsageLimit引用 功能改进: - 确保totalCostLimit作为永久累计费用限制正常工作 - 与dailyCostLimit(每日重置)功能互补 - 适用于预付费、一次性API Key场景 测试: - 删除有逻辑错误的test-total-usage-limit.js - 创建新的test-total-cost-limit.js验证功能正确性 - 所有测试通过,功能正常工作 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -312,33 +312,6 @@ const authenticateApiKey = async (req, res, next) => {
|
||||
}
|
||||
}
|
||||
|
||||
// 检查总额度限制(基于累计费用)
|
||||
const totalUsageLimit = Number(validation.keyData.totalUsageLimit || 0)
|
||||
if (totalUsageLimit > 0) {
|
||||
const totalCost = Number(validation.keyData.totalCost || 0)
|
||||
|
||||
if (totalCost >= totalUsageLimit) {
|
||||
logger.security(
|
||||
`📉 Total usage limit exceeded for key: ${validation.keyData.id} (${
|
||||
validation.keyData.name
|
||||
}), cost: $${totalCost.toFixed(2)}/$${totalUsageLimit.toFixed(2)}`
|
||||
)
|
||||
|
||||
return res.status(429).json({
|
||||
error: 'Total usage limit exceeded',
|
||||
message: `已达到总额度限制 ($${totalUsageLimit.toFixed(2)})`,
|
||||
currentCost: totalCost,
|
||||
costLimit: totalUsageLimit
|
||||
})
|
||||
}
|
||||
|
||||
logger.api(
|
||||
`📉 Total usage for key: ${validation.keyData.id} (${
|
||||
validation.keyData.name
|
||||
}), cost: $${totalCost.toFixed(2)}/$${totalUsageLimit.toFixed(2)}`
|
||||
)
|
||||
}
|
||||
|
||||
// 检查每日费用限制
|
||||
const dailyCostLimit = validation.keyData.dailyCostLimit || 0
|
||||
if (dailyCostLimit > 0) {
|
||||
@@ -460,7 +433,6 @@ const authenticateApiKey = async (req, res, next) => {
|
||||
allowedClients: validation.keyData.allowedClients,
|
||||
dailyCostLimit: validation.keyData.dailyCostLimit,
|
||||
dailyCost: validation.keyData.dailyCost,
|
||||
totalUsageLimit: validation.keyData.totalUsageLimit,
|
||||
totalCostLimit: validation.keyData.totalCostLimit,
|
||||
totalCost: validation.keyData.totalCost,
|
||||
usage: validation.keyData.usage
|
||||
|
||||
Reference in New Issue
Block a user