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.yml 配置
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: auth-mysql
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_DATABASE:-auth_db}
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
networks:
- auth-network
auth-service:
build: .
container_name: auth-service
depends_on:
mysql:
condition: service_healthy
environment:
MYSQL_HOST: mysql
MYSQL_PORT: 3306
MYSQL_USER: root
MYSQL_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_DATABASE: ${MYSQL_DATABASE:-auth_db}
CLIENT_SECRET: ${CLIENT_SECRET:-your-client-secret-key-change-in-production}
SECRET_KEY: ${SECRET_KEY:-your-secret-key-change-in-production-12345678}
ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES:-1440}
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-admin123}
# ports:
# - "${SERVICE_PORT:-8000}:8000"
volumes:
- ./app:/app/app
- ./main.py:/app/main.py
restart: unless-stopped
networks:
- auth-network
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: auth-phpmyadmin
depends_on:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
PMA_USER: root
PMA_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-password}
UPLOAD_LIMIT: 300M
ports:
- "${PHPMYADMIN_PORT:-8080}:80"
restart: unless-stopped
networks:
- auth-network
volumes:
mysql_data:
networks:
auth-network:
driver: bridge- 启动服务
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 --extra-index-url https://www.geekery.cn/pip/simple/包索引地址:https://www.geekery.cn/pip/simple/py-auth-client/index.html
快速开始
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 12:25
查看所有更新日志
dcfc7-于e7f49-于afe81-于c54b6-于