ZyphrZero
commited on
Commit
·
61703b7
1
Parent(s):
4803675
✨ feat(config): 支持混合格式的 token 配置文件
Browse files- 更新 token 文件解析逻辑,支持多种格式的混合使用
- 简化配置说明文档,提供更清晰的格式示例
- 优化代码结构,提高可读性和可维护性
- README.md +4 -20
- app/core/config.py +27 -37
- tokens.txt.example +13 -9
README.md
CHANGED
|
@@ -173,26 +173,10 @@ for chunk in response:
|
|
| 173 |
|
| 174 |
### Token配置方式
|
| 175 |
|
| 176 |
-
创建 `tokens.txt`
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
# 认证token配置文件
|
| 181 |
-
# 支持注释行(以#开头)和空行
|
| 182 |
-
# 只添加认证用户token (role: "user")
|
| 183 |
-
|
| 184 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItMTIzIn0.signature1
|
| 185 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItNDU2In0.signature2
|
| 186 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItNzg5In0.signature3
|
| 187 |
-
```
|
| 188 |
-
|
| 189 |
-
**格式2:逗号分隔**
|
| 190 |
-
```txt
|
| 191 |
-
# 认证token配置文件
|
| 192 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItMTIzIn0.signature1,
|
| 193 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItNDU2In0.signature2,
|
| 194 |
-
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6InVzZXItNzg5In0.signature3
|
| 195 |
-
```
|
| 196 |
|
| 197 |
## 监控API
|
| 198 |
|
|
|
|
| 173 |
|
| 174 |
### Token配置方式
|
| 175 |
|
| 176 |
+
创建 `tokens.txt` 文件,支持多种格式的混合使用:
|
| 177 |
+
1. 每行一个token(换行分隔)
|
| 178 |
+
2. 逗号分隔的token
|
| 179 |
+
3. 混合格式(同时支持换行和逗号分隔)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
|
| 181 |
## 监控API
|
| 182 |
|
app/core/config.py
CHANGED
|
@@ -26,14 +26,10 @@ class Settings(BaseSettings):
|
|
| 26 |
"""
|
| 27 |
从文件加载token列表
|
| 28 |
|
| 29 |
-
|
| 30 |
-
1. 每行一个token
|
| 31 |
-
2. 逗号分隔的token
|
| 32 |
-
|
| 33 |
-
处理规则:
|
| 34 |
-
- 跳过空行和注释行(以#开头)
|
| 35 |
-
- 自动检测并处理逗号分隔格式
|
| 36 |
-
- 去除空格和换行符
|
| 37 |
"""
|
| 38 |
tokens = []
|
| 39 |
try:
|
|
@@ -45,35 +41,29 @@ class Settings(BaseSettings):
|
|
| 45 |
logger.debug(f"📄 Token文件为空: {file_path}")
|
| 46 |
return tokens
|
| 47 |
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
logger.debug(f"📄 使用每行一个token格式: {file_path}")
|
| 72 |
-
for line in content.split('\n'):
|
| 73 |
-
line = line.strip()
|
| 74 |
-
# 跳过空行和注释行
|
| 75 |
-
if line and not line.startswith('#'):
|
| 76 |
-
tokens.append(line)
|
| 77 |
|
| 78 |
logger.info(f"📄 从文件加载了 {len(tokens)} 个token: {file_path}")
|
| 79 |
else:
|
|
|
|
| 26 |
"""
|
| 27 |
从文件加载token列表
|
| 28 |
|
| 29 |
+
支持多种格式的混合使用:
|
| 30 |
+
1. 每行一个token(换行分隔)
|
| 31 |
+
2. 逗号分隔的token
|
| 32 |
+
3. 混合格式(同时支持换行和逗号分隔)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
"""
|
| 34 |
tokens = []
|
| 35 |
try:
|
|
|
|
| 41 |
logger.debug(f"📄 Token文件为空: {file_path}")
|
| 42 |
return tokens
|
| 43 |
|
| 44 |
+
logger.debug(f"📄 开始解析token文件: {file_path}")
|
| 45 |
+
|
| 46 |
+
# 智能解析:同时支持换行和逗号分隔
|
| 47 |
+
# 1. 先按换行符分割处理每一行
|
| 48 |
+
lines = content.split('\n')
|
| 49 |
+
|
| 50 |
+
for line in lines:
|
| 51 |
+
line = line.strip()
|
| 52 |
+
# 跳过空行和注释行
|
| 53 |
+
if not line or line.startswith('#'):
|
| 54 |
+
continue
|
| 55 |
+
|
| 56 |
+
# 2. 检查当前行是否包含逗号分隔
|
| 57 |
+
if ',' in line:
|
| 58 |
+
# 按逗号分割当前行
|
| 59 |
+
comma_tokens = line.split(',')
|
| 60 |
+
for token in comma_tokens:
|
| 61 |
+
token = token.strip()
|
| 62 |
+
if token: # 跳过空token
|
| 63 |
+
tokens.append(token)
|
| 64 |
+
else:
|
| 65 |
+
# 整行作为一个token
|
| 66 |
+
tokens.append(line)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
|
| 68 |
logger.info(f"📄 从文件加载了 {len(tokens)} 个token: {file_path}")
|
| 69 |
else:
|
tokens.txt.example
CHANGED
|
@@ -7,15 +7,19 @@
|
|
| 7 |
# 4. 修改此文件后无需重启服务,系统会自动重新加载
|
| 8 |
# 5. 自动跳过空格、换行符和空token
|
| 9 |
#
|
| 10 |
-
# 格式1
|
| 11 |
-
#
|
| 12 |
-
#
|
| 13 |
-
#
|
| 14 |
-
|
| 15 |
-
# 格式2
|
| 16 |
-
#
|
| 17 |
-
|
| 18 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
# 请在下方添加您的认证用户token(使用任一格式):
|
| 21 |
|
|
|
|
| 7 |
# 4. 修改此文件后无需重启服务,系统会自动重新加载
|
| 8 |
# 5. 自动跳过空格、换行符和空token
|
| 9 |
#
|
| 10 |
+
# 格式1:纯换行分隔
|
| 11 |
+
# token1
|
| 12 |
+
# token2
|
| 13 |
+
# token3
|
| 14 |
+
|
| 15 |
+
# 格式2:纯逗号分隔
|
| 16 |
+
# token1,token2,token3
|
| 17 |
+
|
| 18 |
+
# 格式3:混合格式
|
| 19 |
+
# token1,token2
|
| 20 |
+
# token3
|
| 21 |
+
# token4,token5,token6
|
| 22 |
+
# token7
|
| 23 |
|
| 24 |
# 请在下方添加您的认证用户token(使用任一格式):
|
| 25 |
|