fix: 降低 API Key 最小长度限制至 3 个字符

This commit is contained in:
fawney19
2026-01-08 01:53:16 +08:00
parent 238788e0e9
commit d9e6346911
3 changed files with 6 additions and 10 deletions

View File

@@ -349,8 +349,8 @@ const apiKeyError = computed(() => {
} }
// 如果输入了值,检查长度 // 如果输入了值,检查长度
if (apiKey.length < 10) { if (apiKey.length < 3) {
return 'API 密钥至少需要 10 个字符' return 'API 密钥至少需要 3 个字符'
} }
return '' return ''

View File

@@ -54,7 +54,7 @@ const fieldNameMap: Record<string, string> = {
*/ */
const errorTypeMap: Record<string, (error: ValidationError) => string> = { const errorTypeMap: Record<string, (error: ValidationError) => string> = {
'string_too_short': (error) => { 'string_too_short': (error) => {
const minLength = error.ctx?.min_length || 10 const minLength = error.ctx?.min_length || 3
return `长度不能少于 ${minLength} 个字符` return `长度不能少于 ${minLength} 个字符`
}, },
'string_too_long': (error) => { 'string_too_long': (error) => {

View File

@@ -134,7 +134,7 @@ class EndpointAPIKeyCreate(BaseModel):
"""为 Endpoint 添加 API Key""" """为 Endpoint 添加 API Key"""
endpoint_id: str = Field(..., description="Endpoint ID") endpoint_id: str = Field(..., description="Endpoint ID")
api_key: str = Field(..., min_length=10, max_length=500, description="API Key将自动加密") api_key: str = Field(..., min_length=3, max_length=500, description="API Key将自动加密")
name: str = Field(..., min_length=1, max_length=100, description="密钥名称(必填,用于识别)") name: str = Field(..., min_length=1, max_length=100, description="密钥名称(必填,用于识别)")
# 成本计算 # 成本计算
@@ -175,13 +175,9 @@ class EndpointAPIKeyCreate(BaseModel):
@classmethod @classmethod
def validate_api_key(cls, v: str) -> str: def validate_api_key(cls, v: str) -> str:
"""验证 API Key 安全性""" """验证 API Key 安全性"""
# 移除首尾空白 # 移除首尾空白(长度校验由 Field min_length 处理)
v = v.strip() v = v.strip()
# 检查最小长度
if len(v) < 10:
raise ValueError("API Key 长度不能少于 10 个字符")
# 检查危险字符SQL 注入防护) # 检查危险字符SQL 注入防护)
dangerous_chars = ["'", '"', ";", "--", "/*", "*/", "<", ">"] dangerous_chars = ["'", '"', ";", "--", "/*", "*/", "<", ">"]
for char in dangerous_chars: for char in dangerous_chars:
@@ -219,7 +215,7 @@ class EndpointAPIKeyUpdate(BaseModel):
"""更新 Endpoint API Key""" """更新 Endpoint API Key"""
api_key: Optional[str] = Field( api_key: Optional[str] = Field(
default=None, min_length=10, max_length=500, description="API Key将自动加密" default=None, min_length=3, max_length=500, description="API Key将自动加密"
) )
name: Optional[str] = Field(default=None, min_length=1, max_length=100, description="密钥名称") name: Optional[str] = Field(default=None, min_length=1, max_length=100, description="密钥名称")
rate_multiplier: Optional[float] = Field(default=None, ge=0.01, description="成本倍率") rate_multiplier: Optional[float] = Field(default=None, ge=0.01, description="成本倍率")