芝麻粒-TK授权码获取 - NoneBot
验证服务器 - FastAPI
Sesame-TK-Service/
├── src/
│ ├── shared/ # 🆕 共享数据库模块
│ │ ├── __init__.py # 包导出
│ │ ├── database.py # 核心数据库代码
│ │ └── README.md # 使用文档
│ ├── bot/ # 🤖 NoneBot机器人
│ │ ├── __init__.py
│ │ └── plugins/
│ │ └── sesame/ # 芝麻粒插件
│ └── server/ # 🚀 FastAPI服务器
│ ├── __init__.py
│ ├── main.py # 服务器主逻辑
│ ├── dbmodel.py # 数据库模型
│ ├── webmodel.py # API数据模型
│ ├── log.py # 日志配置
│ ├── RSAKeyManager.py # RSA加密管理
│ ├── test_api.py # API测试脚本
│ ├── private_key.pem # RSA私钥
│ └── public_key.pem # RSA公钥
├── .env # 环境变量配置
├── .env.dev # 开发环境配置
├── .env.prod # 生产环境配置
├── pyproject.toml # 项目配置
└── README.md # 项目文档
在这之前你需要安装
uv
环境配置
DEBUG_MODE=True
LOG_LEVEL=DEBUG
DRIVER=~fastapi+~httpx
HOST=0.0.0.0 # 配置 NoneBot 监听的 IP / 主机名
PORT=8080 # 配置 NoneBot 监听的端口
COMMAND_START=["/"] # 配置命令起始字符
COMMAND_SEP=["."] # 配置命令分割字符
telegram_bots = [{"token": "telegram_bot_token"}]
telegram_proxy = "http://host:prot" #nonebot-tg-proxy
DATABASE_URI = "mysql+asyncmy://user:passwd@host:prot/sqlname?charset=utf8mb4"
# DATABASE_URI = "sqlite:///data.db"uv sync复制并修改环境变量文件:
cp .env.dev .env
# 编辑 .env 文件,配置数据库连接等nb run --reloaduv run .\server\main.py项目使用共享数据库模块,支持统一配置:
# 设置数据库URI
export DATABASE_URI="mysql+asyncmy://user:password@host:port/database"- ✅ 统一模型:
AlipayUser,Device,TgUser - ✅ 类型安全: 两个服务使用相同的数据库定义
- ✅ 易维护: 数据库变更只需修改一处
- ✅ 配置统一: 通过环境变量管理数据库连接
- 🤖 Telegram Bot支持
- 🔑 授权码生成和管理
- 📱 设备绑定功能
- 👤 用户信息同步
- 🔐 安全API(RSA加密通信)
- 📊 数据验证和Token管理
- 🛡️ 防重放攻击
- 📝 详细日志记录
- 在
src/shared/database.py中修改ORM模型 - 两个服务自动使用新的字段定义
- 运行数据库迁移(如果需要)
- 在
src/server/main.py中添加路由 - 在
src/server/webmodel.py中定义数据模型 - 使用共享数据库进行数据操作
- 在
src/bot/plugins/sesame/__init__.py中添加命令处理 - 使用共享数据库进行数据操作
- RSA加密通信
- 请求签名验证
- 时间戳防重放
- HMAC-SHA256签名