本帖最后由 heiyezhuquan 于 2026-6-1 00:43 编辑
align=center]License SaaS 软件授权系统 v1.1 开源发布
轻量级软件授权 / 卡密 / 代理商 / 客户端安全协议管理系统
Go + Vue + SQLite | 单端口部署 | 支持账号授权 / 卡密授权 / 代理发卡 / 云变量 / 心跳验证
一、项目简介
License SaaS 是一套面向软件作者、工具开发者、小型团队的本地化软件授权管理系统。
系统采用:
- 后端:Go / Gin
- 前端:Vue 3 / Naive UI
- 数据库:SQLite
- 部署方式:单端口运行,后端同时提供后台页面和 API 接口
适合用于软件登录授权、卡密激活、代理商发卡、设备绑定、版本更新检测、客户端心跳、云变量读取等场景。
本项目主打轻量、简单、易部署,不依赖 MySQL,不需要复杂服务器环境,适合单机部署和个人软件项目使用。
二、主要功能
1. 管理后台
- 首次启动初始化管理员账号
- 软件管理 / 软件配置
- 用户管理
- 卡密管理
- 卡类套餐管理
- 代理商管理
- 设备管理
- 云变量管理
- 销量查询
- 客户端接口 / 安全协议文档
2. 软件配置
每个软件可以独立配置:
- App Key
- 客户端签名密钥 client_secret
- 当前版本号
- 最低版本号
- 公告内容
- 强制更新
- 下载地址
- 备用下载地址
- 心跳间隔
- 心跳超时时间
版本号采用整数设计,例如:
客户端可以直接比较:
- if localVersion < min_version {
- // 提示更新
- }
复制代码
3. 用户授权
支持账号模式:
- 客户端注册账号
- 注册时使用卡密激活
- 账号密码登录
- 账号充值续费
- 到期时间管理
- 设备绑定
- 设备解绑
- 心跳检测
4. 卡密授权
支持单卡模式:
- 卡密登录
- 首次登录绑定机器码
- 同机器码可重复登录
- 卡密到期检测
- 卡密解绑
- 卡密心跳
5. 代理商系统
系统内置代理商后台,代理商可以独立登录。
支持:
- 代理账号创建
- 代理余额管理
- 代理可售软件授权
- 代理可售卡类授权
- 代理生成卡密
- 自动扣除余额
- 代理查看自己的卡密
- 代理查看销售统计
代理账号不是管理员账号,不能管理全局软件,只能在授权范围内发卡。
6. 设备管理
支持设备在线状态管理:
- 机器码绑定
- 设备心跳
- 在线 / 离线判断
- 设备禁用
- 设备封禁
- 设备恢复
- 账号授权设备
- 卡密授权设备
在线状态通过心跳时间判断,不是简单写死状态,更适合实际客户端使用。
7. 云变量
支持软件级云变量配置。
可用于客户端运行时读取:
- 公告文本
- 开关配置
- 远程参数
- 运行提示
- 简单 key/value 配置
客户端必须登录后携带 token 才能读取云变量,避免仅凭签名密钥直接读取配置。
三、客户端安全协议
所有客户端接口统一使用 HMAC-SHA256 签名。
请求头包括:
- X-App-Key
- X-Timestamp
- X-Nonce
- X-Signature
- Content-Type: application/json
复制代码
签名原文格式:
- METHOD + "\n" + PATH_WITH_QUERY + "\n" + TIMESTAMP + "\n" + NONCE + "\n" + BODY_JSON
复制代码
说明:
- client_secret 是 HMAC key
- GET 请求 BODY_JSON 为空字符串
- 只签名路径和参数,不签名完整域名
- 换行符必须是 LF
- 签名结果为 64 位小写 hex
- 服务端会校验时间戳和 nonce,防止重放请求
系统内置客户端安全协议说明页,方便对接 C++、易语言等客户端。
|