通用授权平台(License Server + SDK)产品系统

我要开发同款
c6h5gp2026年10月02日
5阅读

技术信息

语言技术
Python、Docker、HTTP
系统类型
Web、Windows
行业分类
企业服务、开发工具

作品详情

行业场景

独立开发者和中小团队交付桌面工具、内部系统或商业软件时,常需要试用期、激活码、设备绑定、到期续验和版本更新等能力,但每个产品各写一套授权逻辑成本高、易出漏洞。本项目是一套自建的多产品软件授权/认证平台:服务端统一管理多个产品的激活码、设备与发版,客户端 SDK 可嵌入任意 Windows / Python 应用,业务应用只需通过配置文件接入,授权逻辑与业务代码解耦,同一平台按 product_id 隔离服务多个产品。

功能介绍

- 多产品管理:创建/编辑/停用产品,每个产品独立密钥对与试用天数。
- 激活码:批量发码、设置有效天数与设备上限、单个/批量吊销、筛选分页与导出。
- 设备管理:查看已激活设备与到期时间,支持解绑、批量解绑、许可延期,导出 TXT/CSV。
- 发版与更新:上传安装包或按 URL 发布,自动计算 SHA256,支持 stable/beta 通道与强制更新,客户端版本检查。
- 客户端 API:激活、心跳挑战/续验、客户端解绑、产品信息查询,带限流。
- 管理后台:概览仪表盘、审计日志及 CSV 导出,Cookie 会话登录(可选 IP 绑定、IP 白名单)。
- SDK:试用、离线宽限、激活/解绑对话框、启动门禁、TLS 证书钉扎、更新检查。
- 打包:可将业务应用打成单 EXE 并在入口注入授权门禁,打包前扫描密钥残留。

项目实现

服务端基于 FastAPI + Uvicorn,数据存储使用 SQLite(产品、激活码、设备、许可、挑战、发版、审计日志、管理会话等表),提供 /health 与 /ready 探针。许可数据使用 PyNaCl(Ed25519)签名,客户端用产品公钥离线验签;心跳采用 challenge-nonce 机制防重放。管理端支持 Bearer Token 与 HttpOnly Cookie 会话并存,提供强 Token 校验开关、管理鉴权失败限流、可选 Redis 限流、OpenAPI 文档开关。管理后台为原生 HTML/JS 单页应用。客户端 SDK 以 ProductConfig 配置驱动,基于 httpx 通信,包含机器码、本地许可存储、试用与更新模块。license_pack 模块基于 Nuitka onefile 打包并注入门禁,配套源码导出与密钥扫描。部署支持 Docker Compose 与 Caddy HTTPS 示例,提供数据库备份/恢复脚本,pytest 覆盖核心流程,GitHub Actions 做 CI。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论