|
|
2 päivää sitten | |
|---|---|---|
| database | 2 päivää sitten | |
| handlers | 2 viikkoa sitten | |
| middleware | 2 viikkoa sitten | |
| models | 2 päivää sitten | |
| web | 2 päivää sitten | |
| .dockerignore | 2 viikkoa sitten | |
| .gitignore | 2 viikkoa sitten | |
| BUILD.md | 2 viikkoa sitten | |
| DOCKER.md | 2 viikkoa sitten | |
| Dockerfile | 2 viikkoa sitten | |
| README.md | 2 viikkoa sitten | |
| build.sh | 2 viikkoa sitten | |
| docker-compose.yml | 2 viikkoa sitten | |
| go.mod | 2 viikkoa sitten | |
| go.sum | 2 viikkoa sitten | |
| main.go | 2 päivää sitten |
一个轻量级的 License 验证和管理服务,用于 Chrome 浏览器插件后端。支持激活码管理、设备绑定、批量操作等功能。
克隆项目
git clone <repository-url>
cd license-admin
安装依赖
go mod download
配置数据库
# 设置 MySQL 连接信息
export DB_HOST=localhost
export DB_PORT=3306
export DB_USER=root
export DB_PASSWORD=your-password
export DB_NAME=license_admin
# 初始化数据库(可选,应用会自动创建表)
mysql -u root -p < database/init.sql
配置 Token(可选)
# 设置认证 Token(默认:admin-token-123456)
export AUTH_TOKEN=your-secret-token
启动服务
go run main.go
# 或编译后运行
go build -o license-admin
./license-admin
访问管理平台
浏览器打开:http://localhost:8080
http://localhost:8080,自动跳转到登录页admin-token-123456)单个创建:
批量生成:
生成的激活码格式:前缀-32位随机字符串(如:VIP-A3B9C2D4E5F6G7H8I9J0K1L2M3N4O5P6)
激活码支持设备绑定功能:
POST /api/verify
Content-Type: application/json
{
"key": "VIP-123456",
"device_id": "device-uuid-123"
}
响应:
{
"code": 0,
"msg": "success",
"data": {
"valid": true
}
}
POST /api/login
Content-Type: application/json
{
"token": "admin-token-123456"
}
响应:
{
"code": 0,
"msg": "登录成功",
"data": {
"token": "admin-token-123456"
}
}
所有管理接口需要在请求头中添加 Token:
Authorization: Bearer your-token
GET /api/licenses?page=1&page_size=10
Authorization: Bearer your-token
GET /api/licenses/:id
Authorization: Bearer your-token
POST /api/licenses
Authorization: Bearer your-token
Content-Type: application/json
{
"key": "VIP-8888",
"max_devices": 2,
"bound_devices": "[]"
}
PUT /api/licenses/:id
Authorization: Bearer your-token
Content-Type: application/json
{
"max_devices": 5,
"bound_devices": "[\"device-1\", \"device-2\"]"
}
DELETE /api/licenses/:id
Authorization: Bearer your-token
POST /api/licenses/batch
Authorization: Bearer your-token
Content-Type: application/json
{
"prefix": "VIP",
"count": 10,
"max_devices": 2
}
DELETE /api/licenses/batch
Authorization: Bearer your-token
Content-Type: application/json
{
"ids": [1, 2, 3]
}
license-admin/
├── main.go # 主程序入口
├── go.mod # Go 模块依赖
├── go.sum # 依赖校验
├── database/
│ └── database.go # 数据库初始化
├── models/
│ └── license.go # License 数据模型
├── handlers/
│ ├── auth.go # 认证处理器
│ ├── license.go # License CRUD 处理器
│ └── verify.go # License 验证处理器
├── middleware/
│ └── auth.go # Token 认证中间件
├── web/
│ ├── index.html # 管理平台前端
│ └── login.html # 登录页面
├── license.db # SQLite 数据库文件(自动生成)
└── README.md # 项目文档
| 变量名 | 说明 | 默认值 |
|---|---|---|
AUTH_TOKEN |
认证 Token | admin-token-123456 |
DB_HOST |
MySQL 主机地址 | localhost |
DB_PORT |
MySQL 端口 | 3306 |
DB_USER |
MySQL 用户名 | root |
DB_PASSWORD |
MySQL 密码 | password |
DB_NAME |
数据库名称 | license_admin |
database/init.sqldatabase/schema.sql默认端口:8080
修改端口:编辑 main.go 中的 r.Run(":8080")
生产环境配置
AUTH_TOKENToken 管理
数据库安全
mysqldump -u root -p license_admin > backup.sqlgithub.com/gin-gonic/gin - Web 框架gorm.io/gorm - ORM 框架gorm.io/driver/mysql - MySQL 驱动github.com/go-sql-driver/mysql - MySQL 驱动底层实现# 开发模式运行
go run main.go
# 编译二进制
go build -o license-admin
# 运行测试
go test ./...
检查:
docker logs license-admin 或应用运行日志修改 main.go 中的端口号,或停止占用 8080 端口的程序。
检查:
AUTH_TOKEN 是否设置Authorization: Bearer <token>已在代码中配置 CORS,如仍有问题,检查浏览器控制台错误信息。
本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请提交 Issue。
注意: 本项目为轻量级服务,适用于中小规模场景。生产环境使用请做好安全配置和性能优化。