2026-03-28 23:30:02 +08:00
|
|
|
|
# NetworkAuth(网络授权服务)
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
网络授权服务 (NetworkAuth) 是一个专注于应用鉴权、接口管理和动态逻辑分发的后端系统。它基于 Go 语言开发,提供应用程序管理、API接口管理、变量管理、用户认证等核心服务。
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
|
|
|
|
|
### 🚀 核心功能
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **应用管理**: 支持应用的增删改查、版本管理、状态控制、密钥管理
|
|
|
|
|
|
- **API接口管理**: 支持多种加密算法的API接口配置(RC4、RSA、易加密等)
|
|
|
|
|
|
- **变量管理**: 独立的变量系统,支持变量的增删改查和别名管理
|
2026-03-18 22:02:22 +08:00
|
|
|
|
- **函数管理**: 支持自定义函数代码管理,可绑定特定应用或全局使用
|
2025-10-24 00:13:46 +08:00
|
|
|
|
- **用户管理**: 完整的用户认证和权限管理系统
|
|
|
|
|
|
- **系统设置**: 灵活的系统配置和参数管理
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **系统初始化**: 提供引导式的数据表初始化和默认设置注入
|
2026-03-18 22:02:22 +08:00
|
|
|
|
- **日志审计**: 详细的登录日志和操作日志记录,保障系统安全
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
### 🔧 技术特性
|
|
|
|
|
|
- **RESTful API**: 标准的 REST API 接口设计
|
|
|
|
|
|
- **JWT 认证**: 基于 JWT 的安全认证机制
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **多种加密算法**: 支持 RC4、RSA、RSA动态、易加密等多种加密方式
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **数据库支持**: 兼容 MySQL 和 SQLite 数据库 (通过 GORM)
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **Redis 缓存**: 集成 Redis 缓存提升性能(可选)
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **日志系统**: 完整的日志记录和管理,支持日志切割 (Logrus + Lumberjack)
|
2025-10-24 00:13:46 +08:00
|
|
|
|
- **配置管理**: 基于 Viper 的灵活配置系统
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **命令行工具**: 基于 Cobra 的强悍 CLI 管理工具
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
## 技术栈
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **语言**: Go 1.25.0
|
|
|
|
|
|
- **Web 框架**: Gin
|
|
|
|
|
|
- **数据库 ORM**: GORM
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **缓存**: Redis(可选)
|
2026-03-18 22:02:22 +08:00
|
|
|
|
- **认证**: JWT + 验证码
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **日志**: Logrus + Lumberjack
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- **配置管理**: Viper
|
|
|
|
|
|
- **命令行**: Cobra
|
2025-10-26 15:20:17 +08:00
|
|
|
|
- **加密**: 自定义加密工具包
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
## 项目结构
|
|
|
|
|
|
|
|
|
|
|
|
```
|
2026-03-28 23:30:02 +08:00
|
|
|
|
NetworkAuth/
|
|
|
|
|
|
├── cmd/ # Cobra 命令行工具定义
|
|
|
|
|
|
├── config/ # 配置文件模型与校验逻辑
|
|
|
|
|
|
├── constants/ # 全局常量定义 (版本号、状态码等)
|
|
|
|
|
|
├── controllers/ # 控制器层 (处理 HTTP 请求)
|
|
|
|
|
|
├── database/ # 数据库连接、迁移与默认数据填充
|
|
|
|
|
|
├── middleware/ # Gin 中间件 (日志、认证、维护模式等)
|
|
|
|
|
|
├── models/ # GORM 数据模型定义
|
|
|
|
|
|
├── server/ # HTTP 服务器路由注册
|
|
|
|
|
|
├── services/ # 核心业务逻辑层
|
|
|
|
|
|
├── utils/ # 通用工具函数 (加密、日志、时间等)
|
|
|
|
|
|
└── main.go # 项目入口
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
|
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
|
|
2026-03-18 22:02:22 +08:00
|
|
|
|
- Go 1.25.0 或更高版本
|
2025-10-24 00:13:46 +08:00
|
|
|
|
- MySQL 5.7+ 或 SQLite 3
|
2026-03-28 23:30:02 +08:00
|
|
|
|
- Redis (可选)
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
### 安装与运行
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
1. **克隆项目**
|
|
|
|
|
|
```bash
|
2026-03-28 23:30:02 +08:00
|
|
|
|
git clone https://github.com/skyle1995/NetworkAuth.git
|
|
|
|
|
|
cd NetworkAuth
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. **安装依赖**
|
|
|
|
|
|
```bash
|
|
|
|
|
|
go mod download
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
3. **运行服务器**
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```bash
|
2025-10-26 15:20:17 +08:00
|
|
|
|
# 直接运行
|
2025-10-24 00:13:46 +08:00
|
|
|
|
go run main.go server
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
# 或者编译后运行
|
|
|
|
|
|
go build -o networkauth main.go
|
|
|
|
|
|
./networkauth server
|
|
|
|
|
|
```
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
### 命令行工具
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
项目基于 Cobra CLI 框架,提供了丰富的命令行工具:
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2025-10-26 15:22:37 +08:00
|
|
|
|
# 查看帮助信息
|
2026-03-28 23:30:02 +08:00
|
|
|
|
./networkauth --help
|
2025-10-26 15:22:37 +08:00
|
|
|
|
|
2025-10-24 00:13:46 +08:00
|
|
|
|
# 启动服务器
|
2026-03-28 23:30:02 +08:00
|
|
|
|
./networkauth server
|
2025-10-26 15:22:37 +08:00
|
|
|
|
|
|
|
|
|
|
# 指定配置文件启动
|
2026-03-28 23:30:02 +08:00
|
|
|
|
./networkauth --config ./config.json server
|
2025-10-26 15:22:37 +08:00
|
|
|
|
|
|
|
|
|
|
# 指定端口启动 (覆盖配置文件)
|
2026-03-28 23:30:02 +08:00
|
|
|
|
./networkauth server -p 8080
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
|
|
### Docker 部署
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 构建镜像
|
2026-03-28 23:30:02 +08:00
|
|
|
|
docker build -t networkauth .
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
# 运行容器
|
2026-03-28 23:30:02 +08:00
|
|
|
|
docker run -d -p 8080:8080 networkauth
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 生产环境部署
|
|
|
|
|
|
|
|
|
|
|
|
1. 编译生产版本
|
|
|
|
|
|
```bash
|
2026-03-28 23:30:02 +08:00
|
|
|
|
go build -o networkauth main.go
|
2025-10-24 00:13:46 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
2. 准备配置文件(可参考默认配置)。
|
|
|
|
|
|
3. 使用进程管理工具(如 systemd 或 supervisor)管理后端服务进程。
|
2025-10-24 00:13:46 +08:00
|
|
|
|
|
|
|
|
|
|
## 许可证
|
|
|
|
|
|
|
2026-03-28 23:30:02 +08:00
|
|
|
|
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。
|