优化客户端管理功能,修复创建、编辑和删除API中的问题,提升用户体验和系统稳定性。

This commit is contained in:
2025-04-24 00:37:19 +08:00
parent ff47bb2f6f
commit 23c5dfcc28
2 changed files with 97 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
---
description:
globs:
alwaysApply: false
---
# 代码规范和最佳实践
## Go 编码规范
### 命名约定
- 使用驼峰命名法
- 包名使用小写
- 导出的标识符必须以大写字母开头
- 接口名通常以 -er 结尾,如 `Handler`、`Service` 等
### 错误处理
- 始终检查错误返回值
- 使用有意义的错误消息
- 在适当的抽象层处理错误
### 项目特定规范
#### Handler 层
参考 [handlers/admin_handler.go](mdc:handlers/admin_handler.go):
- Handler 结构体应包含所需的服务依赖
- 使用依赖注入模式初始化 Handler
- HTTP 响应应使用适当的状态码
- 统一使用 gin.H 作为模板数据传递
#### Service 层
- 实现核心业务逻辑
- 保持服务方法的单一职责
- 避免在服务层处理 HTTP 相关逻辑
#### 中间件
- 保持中间件的通用性和可重用性
- 明确记录中间件的用途和影响
- 合理使用中间件链
### 测试规范
- 为所有关键功能编写单元测试
- 使用表驱动测试方法
- 测试文件命名为 `xxx_test.go`
- 确保测试覆盖主要的成功和失败场景
### 安全最佳实践
- 所有用户输入必须经过验证
- 密码必须加密存储
- 使用 HTTPS
- 实现适当的访问控制
- 遵循 OAuth2 和 OIDC 规范的安全建议

View File

@@ -0,0 +1,45 @@
---
description:
globs:
alwaysApply: false
---
# OIDC/OAuth2 服务器项目结构
这是一个基于 Go 语言实现的 OIDC/OAuth2 认证服务器。
## 核心组件
### 主要入口
- [main.go](mdc:main.go) - 应用程序的主入口点,负责初始化和启动服务器
### 关键目录
- **handlers/** - HTTP 请求处理器
- [handlers/admin_handler.go](mdc:handlers/admin_handler.go) - 管理员相关功能处理
- **services/** - 业务逻辑层
- **models/** - 数据模型定义
- **middleware/** - HTTP 中间件
- **config/** - 配置文件
- **templates/** - HTML 模板文件
- **utils/** - 通用工具函数
## 主要功能模块
### 管理员功能
管理员模块提供以下功能:
- 用户管理(创建、编辑、删除、列表)
- 客户端应用管理
- 管理员登录认证
### 认证流程
实现了标准的 OAuth2 和 OpenID Connect 认证流程:
- 授权码模式
- 密码模式
- 客户端凭证模式
- 隐式授权模式
## 开发指南
- 新增 API 端点应在 handlers/ 目录下创建对应的处理器
- 业务逻辑应放在 services/ 目录下
- 所有数据库模型定义应放在 models/ 目录下
- 通用的中间件应放在 middleware/ 目录下