一个基于 Rust 和 Axum 框架开发的认证中心服务,提供用户管理、权限控制和组织架构管理等核心功能。
本项目采用清晰的模块化结构,主要包含以下目录:
auth-center/
├── src/
│ ├── main.rs # 应用程序入口点
│ ├── lib.rs # 核心库文件,包含全局配置和初始化逻辑
│ ├── route.rs # 路由配置,定义API端点和控制器映射
│ ├── util.rs # 工具类,包含通用的辅助函数和工具方法
│ ├── ctl/ # 控制器层,处理HTTP请求和响应
│ ├── entities/ # 数据库实体层,定义数据模型
│ ├── mapper/ # 数据访问层,实现数据库操作
│ ├── pojo/ # 数据传输对象,定义API请求/响应结构
│ └── svc/ # 服务层,实现核心业务逻辑
├── Cargo.toml # 项目依赖和配置
├── Cargo.lock # 依赖版本锁定文件
└── Dockerfile # Docker构建配置文件
- 处理HTTP请求和响应
- 实现RESTful API接口
- 验证请求参数并返回适当的响应格式
- 调用服务层处理业务逻辑
- 定义与数据库表结构对应的实体类
- 使用SeaORM框架进行数据库映射
- 包含表结构定义和关系配置
- 包含数据库操作的具体实现
- 提供CRUD操作和其他自定义查询方法
- 将数据库记录映射为实体对象
- 定义API请求和响应的数据结构
- 包含数据验证规则
- 用于不同层之间安全地传递数据
- 实现核心业务逻辑
- 调用mapper层进行数据持久化操作
- 处理跨多个实体的复杂业务规则
- 向控制器层提供业务功能接口
main.rs
: 应用程序入口,负责启动服务器和初始化配置lib.rs
: 核心库文件,包含全局状态和共享配置route.rs
: 定义所有API路由及其对应的控制器方法util.rs
: 通用工具函数集合,如密码加密、JWT生成等
- 用户注册与登录
- 用户信息管理(创建、读取、更新、删除)
- 角色分配与管理
- 组管理及成员维护
- 角色定义与管理
- 权限分配与继承
- 基于角色的访问控制(RBAC)
- 操作审计与日志记录
- 部门结构管理
- 职位定义与分配
- 组织单元层级管理
- 组织与用户关联
- 全局参数配置
- 认证策略配置
- 安全策略设置
- 第三方集成配置
- 编程语言: Rust (1.60+)
- Web框架: Axum - 异步、模块化的Web框架
- 数据库 ORM: Sea-ORM - 强类型的ORM框架
- 异步运行时: Tokio - 高性能异步执行环境
- 序列化/反序列化: Serde - 高效的数据转换库
- 日志系统: Tracing - 结构化事件跟踪框架
- 加密库: OpenSSL/Ring - 安全的加密解密操作
- 时间处理: Chrono - 日期时间操作库
- 错误处理: Anyhow - 简化的错误类型封装
- 数据库: PostgreSQL/MySQL - 支持的关系型数据库
- 容器化: Docker/Docker Compose - 环境隔离和部署
- Rust 1.60+ 已安装Rust工具链
- Cargo 包管理器
- Docker 和 Docker Compose(用于容器化部署)
- PostgreSQL 或 MySQL 开发环境
- Git 版本控制系统
- 确保已安装 Rust 工具链
- 克隆项目
- 运行
cargo build
构建项目 - 运行
cargo run
启动服务
项目包含 Dockerfile,支持容器化部署:
docker build -t auth-center .
docker run -p 18080:18080 auth-center
- 所有代码遵循Rust官方编码规范
- 使用Tracing进行结构化日志记录
- 所有外部API使用Serde进行数据序列化/反序列化
- 数据库操作全部通过Sea-ORM进行
- 错误处理统一使用Anyhow包装
- 安全相关操作使用加密库保证安全性