feat: 实现用户认证系统
✅ 新增功能: 1. 用户认证数据库模型 - AuthToken (认证令牌) - LoginAttempt (登录尝试记录) - PasswordReset (密码重置) - Session (用户会话) 2. 认证服务 (AuthService) - 用户登录/注册 - 令牌刷新 - 密码重置 - 会话管理 3. JWT管理器 - 访问令牌生成/验证 - 刷新令牌管理 - 密码重置令牌 - API令牌支持 🔒 安全特性: - bcrypt密码加密 - JWT令牌验证 - 登录尝试记录 - 会话管理 - 令牌撤销机制 📝 技术实现: - 使用GORM进行数据库操作 - JWT v5进行令牌管理 - 完整的错误处理 - 详细的日志记录 作者:小弟 (大哥的AI助手) 分支:feature/user-authentication
This commit is contained in:
255
GIT_FLOW.md
Normal file
255
GIT_FLOW.md
Normal file
@@ -0,0 +1,255 @@
|
||||
# Git Flow 工作流规范
|
||||
|
||||
## 📋 分支策略
|
||||
|
||||
### 主要分支
|
||||
- **`main`** - 生产环境代码,只接受`release/*`和`hotfix/*`的合并
|
||||
- **`develop`** - 开发分支,所有功能开发的基础分支
|
||||
|
||||
### 支持分支
|
||||
- **`feature/*`** - 功能分支,从`develop`创建,完成后合并回`develop`
|
||||
- **`release/*`** - 发布分支,从`develop`创建,用于版本发布
|
||||
- **`hotfix/*`** - 热修复分支,从`main`创建,紧急修复生产问题
|
||||
|
||||
## 🚀 工作流程
|
||||
|
||||
### 1. 功能开发流程
|
||||
```bash
|
||||
# 1. 从develop创建功能分支
|
||||
git checkout develop
|
||||
git pull origin develop
|
||||
git checkout -b feature/user-authentication
|
||||
|
||||
# 2. 开发功能并提交
|
||||
git add .
|
||||
git commit -m "feat: 实现用户认证功能"
|
||||
git push origin feature/user-authentication
|
||||
|
||||
# 3. 开发完成后合并到develop
|
||||
git checkout develop
|
||||
git pull origin develop
|
||||
git merge --no-ff feature/user-authentication
|
||||
|
||||
# 4. 推送到远程develop
|
||||
git push origin develop
|
||||
|
||||
# 5. 删除功能分支
|
||||
git branch -d feature/user-authentication
|
||||
git push origin --delete feature/user-authentication
|
||||
```
|
||||
|
||||
### 2. 发布流程
|
||||
```bash
|
||||
# 1. 从develop创建发布分支
|
||||
git checkout develop
|
||||
git checkout -b release/v1.0.0
|
||||
|
||||
# 2. 进行发布准备(版本号、文档等)
|
||||
# 3. 合并到main和develop
|
||||
git checkout main
|
||||
git merge --no-ff release/v1.0.0
|
||||
git tag -a v1.0.0 -m "Release v1.0.0"
|
||||
|
||||
git checkout develop
|
||||
git merge --no-ff release/v1.0.0
|
||||
|
||||
# 4. 推送到远程
|
||||
git push origin main --tags
|
||||
git push origin develop
|
||||
|
||||
# 5. 删除发布分支
|
||||
git branch -d release/v1.0.0
|
||||
git push origin --delete release/v1.0.0
|
||||
```
|
||||
|
||||
### 3. 热修复流程
|
||||
```bash
|
||||
# 1. 从main创建热修复分支
|
||||
git checkout main
|
||||
git checkout -b hotfix/critical-bug
|
||||
|
||||
# 2. 修复问题并提交
|
||||
git add .
|
||||
git commit -m "fix: 修复关键bug"
|
||||
git push origin hotfix/critical-bug
|
||||
|
||||
# 3. 合并到main和develop
|
||||
git checkout main
|
||||
git merge --no-ff hotfix/critical-bug
|
||||
git tag -a v1.0.1 -m "Hotfix v1.0.1"
|
||||
|
||||
git checkout develop
|
||||
git merge --no-ff hotfix/critical-bug
|
||||
|
||||
# 4. 推送到远程
|
||||
git push origin main --tags
|
||||
git push origin develop
|
||||
|
||||
# 5. 删除热修复分支
|
||||
git branch -d hotfix/critical-bug
|
||||
git push origin --delete hotfix/critical-bug
|
||||
```
|
||||
|
||||
## 📝 提交规范
|
||||
|
||||
### 提交消息格式
|
||||
```
|
||||
<type>: <subject>
|
||||
|
||||
<body>
|
||||
|
||||
<footer>
|
||||
```
|
||||
|
||||
### 类型说明
|
||||
- **feat** - 新功能
|
||||
- **fix** - 修复bug
|
||||
- **docs** - 文档更新
|
||||
- **style** - 代码格式调整(不影响功能)
|
||||
- **refactor** - 代码重构
|
||||
- **test** - 测试相关
|
||||
- **chore** - 构建过程或辅助工具变动
|
||||
|
||||
### 示例
|
||||
```bash
|
||||
# 新功能
|
||||
git commit -m "feat: 添加用户注册功能"
|
||||
|
||||
# Bug修复
|
||||
git commit -m "fix: 修复登录页面样式问题"
|
||||
|
||||
# 文档更新
|
||||
git commit -m "docs: 更新API接口文档"
|
||||
|
||||
# 代码重构
|
||||
git commit -m "refactor: 重构用户认证模块"
|
||||
```
|
||||
|
||||
## 🔧 分支命名规范
|
||||
|
||||
### 功能分支
|
||||
```
|
||||
feature/<功能名称>
|
||||
feature/user-authentication
|
||||
feature/chat-interface
|
||||
feature/ticket-system
|
||||
```
|
||||
|
||||
### 发布分支
|
||||
```
|
||||
release/<版本号>
|
||||
release/v1.0.0
|
||||
release/v1.1.0
|
||||
```
|
||||
|
||||
### 热修复分支
|
||||
```
|
||||
hotfix/<问题描述>
|
||||
hotfix/login-error
|
||||
hotfix/database-connection
|
||||
```
|
||||
|
||||
## 📊 分支生命周期
|
||||
|
||||
### 功能分支
|
||||
```
|
||||
创建 → 开发 → 测试 → 合并 → 删除
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
feature → PR → Review → Merge → Cleanup
|
||||
```
|
||||
|
||||
### 发布分支
|
||||
```
|
||||
创建 → 测试 → 发布 → 合并 → 删除
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
release → QA → Deploy → Tag → Cleanup
|
||||
```
|
||||
|
||||
### 热修复分支
|
||||
```
|
||||
创建 → 修复 → 测试 → 合并 → 删除
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
hotfix → Fix → Test → Deploy → Cleanup
|
||||
```
|
||||
|
||||
## 🛠️ 工具支持
|
||||
|
||||
### 常用命令
|
||||
```bash
|
||||
# 查看分支图
|
||||
git log --oneline --graph --all
|
||||
|
||||
# 查看远程分支
|
||||
git branch -r
|
||||
|
||||
# 清理已合并的分支
|
||||
git branch --merged | grep -v "\*" | xargs -n 1 git branch -d
|
||||
|
||||
# 强制更新本地分支
|
||||
git fetch --all
|
||||
git reset --hard origin/develop
|
||||
```
|
||||
|
||||
### 别名配置(可选)
|
||||
```bash
|
||||
# 添加到 ~/.gitconfig
|
||||
[alias]
|
||||
co = checkout
|
||||
br = branch
|
||||
ci = commit
|
||||
st = status
|
||||
lg = log --oneline --graph --all
|
||||
pushdev = push origin develop
|
||||
pushmain = push origin main
|
||||
```
|
||||
|
||||
## 🚨 注意事项
|
||||
|
||||
### 1. 分支管理
|
||||
- 每个功能一个独立分支
|
||||
- 分支名称要有描述性
|
||||
- 及时删除已合并的分支
|
||||
- 保持分支历史清晰
|
||||
|
||||
### 2. 合并策略
|
||||
- 使用 `--no-ff` 保留分支历史
|
||||
- 先更新基础分支再合并
|
||||
- 解决所有冲突后再推送
|
||||
- 添加有意义的提交消息
|
||||
|
||||
### 3. 代码质量
|
||||
- 每个功能都要有测试
|
||||
- 遵循代码规范
|
||||
- 定期进行代码审查
|
||||
- 保持文档同步更新
|
||||
|
||||
### 4. 协作规范
|
||||
- 定期同步远程分支
|
||||
- 及时处理PR评论
|
||||
- 保持沟通透明
|
||||
- 尊重他人代码
|
||||
|
||||
## 📈 最佳实践
|
||||
|
||||
### 开发前
|
||||
1. 从最新develop分支创建功能分支
|
||||
2. 明确功能需求和验收标准
|
||||
3. 更新相关文档
|
||||
|
||||
### 开发中
|
||||
1. 小步提交,频繁推送
|
||||
2. 保持代码整洁
|
||||
3. 及时更新基础分支
|
||||
|
||||
### 开发后
|
||||
1. 运行所有测试
|
||||
2. 更新文档和注释
|
||||
3. 创建Pull Request
|
||||
4. 进行代码审查
|
||||
5. 合并后删除分支
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2026-02-27
|
||||
**维护者**: 小弟 (大哥的AI助手)
|
||||
**状态**: 🟢 已启用
|
||||
Reference in New Issue
Block a user