Python授权服务使用文档
2025/12/30...大约 2 分钟
Python授权服务使用文档
简介
基于 FastAPI 的软件授权管理系统,支持设备授权验证、AES加密传输、本地缓存、Web管理界面。
项目地址:https://github.com/Paper-Dragon/py-auth
功能特性
- ✅ 设备授权管理、AES加密传输
- ✅ 本地缓存机制(7天有效期)
- ✅ Web管理界面、JWT认证
- ✅ Docker一键部署
快速开始
Docker Compose 部署
- 克隆仓库
git clone https://github.com/Paper-Dragon/py-auth.git
cd py-auth- 配置环境
复制 env.example 为 .env,修改关键配置:
MYSQL_ROOT_PASSWORD: MySQL密码ADMIN_PASSWORD: 管理员密码CLIENT_SECRET: 客户端密钥(与服务端一致)SECRET_KEY: JWT密钥
- 启动服务
docker compose up -d- 访问服务
- Web管理界面:http://localhost:8000(默认账户:
admin/admin123) - API文档:http://localhost:8000/docs
- phpMyAdmin:http://localhost:8080
- 查看日志
docker compose logs -f auth-service客户端SDK使用
功能特性
- ✅ 设备授权状态检查
- ✅ 本地缓存机制(7天有效期)
- ✅ AES加密传输
- ✅ 自动设备信息收集
- ✅ 离线缓存支持
安装客户端SDK
客户端SDK托管在私有PyPI仓库中,使用以下命令安装:
pip install py-auth-client --index-url https://www.geekery.cn/pip/快速开始
from py_auth_client import AuthClient, AuthorizationError
# 初始化客户端
client = AuthClient(
server_url="http://localhost:8000",
software_name="我的软件",
client_secret="your-client-secret-key-change-in-production"
)
# 检查授权
try:
client.require_authorization()
print("✅ 设备已授权")
except AuthorizationError as e:
print(f"❌ 授权失败: {e}")
exit(1)
# 你的软件代码...配置参数
必需参数:
server_url: 授权服务器地址client_secret: 客户端密钥(必须与服务端一致)
可选参数:
device_id: 设备ID(不提供则自动生成)software_name: 软件名称device_info: 设备信息字典(不提供则自动收集)cache_dir: 缓存目录(默认使用系统隐藏目录)enable_cache: 是否启用缓存(默认True)cache_validity_days: 缓存有效期(天,默认7天)check_interval_days: 检查间隔(天,默认2天)
缓存机制
- 缓存有效期:7天
- 始终向服务端发送请求并更新本地缓存
- 在线验证失败时,在有效期内使用缓存作为后备
- 缓存文件经过混淆加密,隐藏在系统目录中
更新日志
2025/12/30 07:17
查看所有更新日志
c54b6-于