Skip to content

meta1top/Authub

Repository files navigation

AuthHub - 统一用户授权系统

Nest Logo Next.js Logo

基于 NestJS、Next.js 和 React 构建的企业级统一用户授权和身份管理系统 Monorepo 项目。

📦 项目结构

此 monorepo 包含以下项目:

后端应用 (NestJS)

统一授权后端服务,提供完整的用户认证、授权和管理功能。

  • 🔐 用户认证 - 登录、注册、密码重置
  • 🔑 Token 管理 - JWT Token 生成和验证
  • 👥 账号管理 - 用户信息、权限管理
  • 🔒 OTP 支持 - 双因素认证(2FA)
  • 📧 邮件服务 - 验证码发送、通知邮件
  • ☁️ 资源管理 - 文件上传、头像存储
  • 🌍 国际化 - 多语言支持(中英文)
  • 📝 Swagger 文档 - 自动生成 API 文档

前端应用 (Next.js)

统一用户授权平台前端应用。

  • 🔐 用户认证 - 登录、注册、密码重置界面
  • 👤 用户管理 - 个人资料、账号设置、安全管理
  • 🔒 双因素认证 - OTP、Google Authenticator 支持
  • 🖼️ 头像管理 - 上传、裁剪、预览
  • 🎨 现代 UI - 基于 @meta-1/design 组件库
  • 🌍 国际化 - 支持多语言切换
  • 🌗 主题切换 - 明暗主题支持
  • 📱 响应式设计 - 完美适配各种设备

后端库

账号管理核心模块。

特性:

  • 👥 用户管理 - 用户 CRUD 操作
  • 🔐 认证服务 - 登录、注册、Token 管理
  • 🔒 OTP 管理 - 双因素认证管理
  • 🛡️ 权限控制 - 基于角色的访问控制(RBAC)
  • 📊 应用管理 - 多应用支持
  • 🔄 会话管理 - 用户会话跟踪

共享类型定义和 Zod Schema。

特性:

  • 🛡️ 类型安全 - TypeScript 类型定义
  • 数据验证 - Zod Schema 验证
  • 🔄 共享复用 - 前后端共享类型
  • 📝 账号类型 - 用户、OTP 相关类型

🚀 快速开始

环境要求

  • Node.js >= 18
  • pnpm >= 8
  • Redis >= 6.0
  • MySQL >= 8.0
  • Nacos >= 2.0 (可选)

安装依赖

# 克隆仓库
git clone <repository-url>
cd authub

# 安装依赖
pnpm install

项目结构

authub/
├── apps/                        # 应用程序
│   ├── server/                 # NestJS 后端服务
│   └── web/                    # Next.js 前端应用
├── libs/                        # 后端库
│   ├── account/                # 账号管理模块
│   └── types/                  # 类型定义
├── locales/                     # 国际化语言文件
│   ├── en.json
│   └── zh-CN.json
├── scripts/                     # 构建和工具脚本
│   └── sync-locales-cli.ts
└── package.json

🛠️ 开发指南

可用命令

后端开发

# 开发模式运行后端服务
pnpm run dev:server            # 启动 server (端口: 3100)

# 构建后端服务
pnpm run build:server          # 构建 server

# 启动生产服务
pnpm run start:server          # 运行构建后的服务

前端开发

# 开发模式运行前端应用
pnpm run dev:web               # 启动 web-authub (端口: 4002)

# 构建前端应用
pnpm run build:web             # 构建 web-authub

工具命令

# 同步语言文件
pnpm run sync:locales

# 代码检查和格式化
pnpm run lint                  # 运行代码检查
pnpm run format                # 格式化代码

# 测试
pnpm run test                  # 运行单元测试
pnpm run test:watch            # 监听模式运行测试
pnpm run test:cov              # 运行测试并生成覆盖率报告

📚 文档导航

应用文档

库文档

依赖的外部库

此项目使用了来自 @meta-1 组织的共享库(通过 npm 安装):

  • @meta-1/nest-common - 通用工具和装饰器
  • @meta-1/nest-security - 安全认证模块
  • @meta-1/nest-message - 邮件服务
  • @meta-1/nest-nacos - Nacos 集成
  • @meta-1/nest-assets - 资源管理
  • @meta-1/nest-types - 基础类型定义
  • @meta-1/design - UI 组件库
  • @meta-1/editor - 富文本编辑器

🔧 配置

项目采用 Nacos 配置中心统一管理配置:

  • 环境变量只需配置 Nacos 连接信息
  • 所有业务配置(数据库、Redis、账号配置等)通过 Nacos 管理
  • 支持配置热更新和环境隔离
  • Nacos 不可用时支持降级启动

详细配置说明请查看 server 文档

🧪 测试

# 运行单元测试
pnpm run test

# 监听模式运行测试
pnpm run test:watch

# 生成覆盖率报告
pnpm run test:cov

🛠️ 技术栈

后端

  • NestJS 11 - 企业级 Node.js 框架
  • TypeScript 5 - 类型安全的 JavaScript
  • Redis - 缓存和会话存储(ioredis)
  • TypeORM - ORM 框架
  • MySQL - 关系型数据库
  • Nacos - 配置管理和服务发现
  • Zod - 数据验证和 Schema 定义
  • AWS SDK - AWS SES、S3 等云服务
  • Aliyun SDK - 阿里云 OSS、邮件推送等

前端

  • Next.js 16 - React 应用框架
  • React 19 - UI 库
  • TypeScript 5 - 类型安全
  • Tailwind CSS 4 - 原子化 CSS 框架
  • @meta-1/design - UI 组件库
  • Recoil - 状态管理
  • React Query - 数据获取和缓存
  • i18next - 国际化
  • JSEncrypt - RSA 加密
  • Zod - 数据验证

工具

  • pnpm - 高效的包管理器
  • Biome - 快速的代码检查和格式化工具
  • Jest - 单元测试框架

🔐 安全特性

后端安全

  • JWT Token 认证
  • RSA 密码加密传输
  • Redis 会话管理
  • OTP 双因素认证
  • API 权限控制
  • SQL 注入防护
  • XSS 防护

前端安全

  • RSA 加密敏感数据
  • HTTPS 传输
  • Token 自动刷新
  • XSS 防护
  • CSRF 防护

🚀 部署

后端部署

# 构建
pnpm run build:server

# 运行
pnpm run start:server

前端部署

# 构建
pnpm run build:web

# 可以部署到 Vercel、Netlify 等平台

🔧 本地开发配置

如果需要在本地开发时覆盖某些依赖包,在 package.json 中添加:

{
  "pnpm": {
    "overrides": {
      "@meta-1/nest-assets": "file:../support/libs/assets",
      "@meta-1/nest-common": "file:../support/libs/common",
      "@meta-1/nest-message": "file:../support/libs/message",
      "@meta-1/nest-nacos": "file:../support/libs/nacos",
      "@meta-1/nest-security": "file:../support/libs/security",
      "@meta-1/nest-types": "file:../support/libs/types"
    }
  }
}

详细说明请参考项目中的本地配置文档。

📝 许可证

MIT Licensed

🤝 贡献

欢迎贡献!请随时提交 Pull Request。

📧 支持

如有问题和支持需求,请在仓库中提交 issue。

About

基于 Nodejs 全栈的统一授权中心

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors