refactor:项目架构重构和命名规范化

- 统一文件命名为snake_case格式(kebab-case  snake_case)
- 重构zulip模块为zulip_core,明确Core层职责
- 重构user-mgmt模块为user_mgmt,统一命名规范
- 调整模块依赖关系,优化架构分层
- 删除过时的文件和目录结构
- 更新相关文档和配置文件

本次重构涉及大量文件重命名和模块重组,
旨在建立更清晰的项目架构和统一的命名规范。
This commit is contained in:
moyin
2026-01-08 00:14:14 +08:00
parent 4fa4bd1a70
commit bb796a2469
178 changed files with 24767 additions and 3484 deletions

View File

@@ -0,0 +1,200 @@
# LoginCore 登录核心模块
LoginCore 是应用的用户认证核心模块,提供完整的用户登录、注册、密码管理和邮箱验证功能,支持多种认证方式包括密码登录、验证码登录和 GitHub OAuth 登录。
## 认证相关
### login()
支持用户名/邮箱/手机号的密码登录
- 支持多种登录标识符(用户名、邮箱、手机号)
- 密码哈希验证
- 用户状态检查
- OAuth用户检测
### verificationCodeLogin()
使用邮箱或手机验证码登录
- 邮箱验证码登录(需邮箱已验证)
- 手机验证码登录
- 自动清除验证码冷却时间
### githubOAuth()
GitHub OAuth 第三方登录
- 现有用户信息更新
- 新用户自动注册
- 用户名冲突自动处理
## 注册相关
### register()
用户注册,支持邮箱验证
- 用户名、邮箱、手机号唯一性检查
- 邮箱验证码验证(可选)
- 密码强度验证
- 自动发送欢迎邮件
## 密码管理
### changePassword()
修改用户密码
- 旧密码验证
- 新密码强度检查
- OAuth用户保护
### resetPassword()
通过验证码重置密码
- 验证码验证
- 新密码强度检查
- 自动清除验证码冷却
### sendPasswordResetCode()
发送密码重置验证码
- 邮箱/手机号用户查找
- 邮箱验证状态检查
- 验证码生成和发送
## 邮箱验证
### sendEmailVerification()
发送邮箱验证码
- 邮箱重复注册检查
- 验证码生成和发送
- 测试模式支持
### verifyEmailCode()
验证邮箱验证码
- 验证码验证
- 用户邮箱验证状态更新
- 自动发送欢迎邮件
### resendEmailVerification()
重新发送邮箱验证码
- 用户存在性检查
- 邮箱验证状态检查
- 防重复验证
## 登录验证码
### sendLoginVerificationCode()
发送登录用验证码
- 用户存在性验证
- 邮箱验证状态检查
- 支持邮箱和手机号
## 辅助功能
### deleteUser()
删除用户(用于回滚操作)
- 用户存在性验证
- 安全删除操作
- 异常处理
### debugVerificationCode()
调试验证码信息
- 验证码状态查询
- 开发调试支持
## 核心特性
### 多种认证方式
- 支持密码、验证码、OAuth 三种登录方式
- 灵活的认证策略选择
- 统一的认证结果格式
### 灵活的登录标识
- 支持用户名、邮箱、手机号登录
- 自动识别标识符类型
- 统一的查找逻辑
### 完整的用户生命周期
- 从注册到登录的完整流程
- 邮箱验证和用户激活
- 密码管理和重置
### 安全性保障
- 密码哈希存储bcrypt12轮盐值
- 用户状态检查
- 验证码冷却机制
- OAuth用户保护
### 异常处理完善
- 详细的错误分类和异常处理
- 用户友好的错误信息
- 业务逻辑异常捕获
### 测试覆盖完整
- 15个测试用例覆盖所有核心功能
- Mock外部依赖确保单元测试独立性
- 异常情况和边界条件测试
## 潜在风险
### 验证码安全
- 验证码在测试模式下会输出到控制台
- 生产环境需确保安全传输
- 建议实施验证码加密传输
### 密码强度
- 当前密码验证规则相对简单8位+字母数字)
- 可能需要更严格的密码策略
- 建议增加特殊字符要求
### 频率限制
- 依赖 VerificationService 的频率限制
- 需确保该服务正常工作
- 建议增加备用限制机制
### 用户状态管理
- 用户状态变更可能影响登录
- 需要完善的状态管理机制
- 建议增加状态变更日志
### 第三方依赖
- GitHub OAuth 依赖外部服务
- 需要处理网络异常情况
- 建议增加重试和降级机制
## 使用示例
```typescript
// 密码登录
const result = await loginCoreService.login({
identifier: 'user@example.com',
password: 'password123'
});
// 用户注册
const registerResult = await loginCoreService.register({
username: 'newuser',
password: 'password123',
nickname: '新用户',
email: 'user@example.com',
email_verification_code: '123456'
});
// 验证码登录
const codeLoginResult = await loginCoreService.verificationCodeLogin({
identifier: 'user@example.com',
verificationCode: '123456'
});
// GitHub OAuth登录
const oauthResult = await loginCoreService.githubOAuth({
github_id: 'github123',
username: 'githubuser',
nickname: 'GitHub用户',
email: 'user@example.com'
});
```
## 依赖服务
- **UsersService**: 用户数据访问服务
- **EmailService**: 邮件发送服务
- **VerificationService**: 验证码管理服务
## 版本信息
- **版本**: 1.0.1
- **作者**: moyin
- **创建时间**: 2025-12-17
- **最后修改**: 2025-01-07