feat: add auth provider boundary
This commit is contained in:
+15
-10
@@ -13,7 +13,7 @@ main.go
|
||||
├─ HotkeyService
|
||||
├─ SystemInfo
|
||||
├─ OCRService # 当前存量示例
|
||||
├─ AuthService # 目标模块
|
||||
├─ AuthService # 已实现 provider 边界
|
||||
├─ AuditLogService # 目标模块
|
||||
├─ AppLogService # 目标模块
|
||||
├─ ImageOptimizationService # 目标业务样例
|
||||
@@ -42,9 +42,12 @@ frontend/src
|
||||
- `internal/services/ocr_service.go`:当前 OCR 存量示例,后续可演进为图片 AI 能力的一部分。
|
||||
- `platform/`:隔离 Windows / macOS 热键和系统能力差异。
|
||||
|
||||
已实现边界:
|
||||
|
||||
- `AuthService`:登录、退出、会话读取;内部通过 `AuthProvider` 接入本地固定账号或真实后端。当前 `LocalAuthProvider` 可用,`RemoteAuthProvider` 保留边界并返回未配置错误。
|
||||
|
||||
目标新增边界:
|
||||
|
||||
- `AuthService`:登录、退出、会话读取;内部通过 `AuthProvider` 接入本地固定账号或真实后端。
|
||||
- `AuditLogService`:记录和查询用户操作审计日志。
|
||||
- `AppLogService`:记录和查询运行错误,必要时可落本地滚动日志文件。
|
||||
- `ImageOptimizationService`:商品图片 AI 优化任务的创建、状态、结果和失败原因。
|
||||
@@ -69,7 +72,7 @@ frontend/src
|
||||
|
||||
## 登录架构
|
||||
|
||||
登录必须通过 provider 边界实现:
|
||||
登录已经通过 provider 边界实现:
|
||||
|
||||
```text
|
||||
AuthService
|
||||
@@ -79,8 +82,10 @@ AuthService
|
||||
```
|
||||
|
||||
- `LocalAuthProvider`:用于模板演示和离线模式,固定账号密码由后端配置或安全哈希保存,不写死在前端。
|
||||
- `RemoteAuthProvider`:用于真实后端,负责请求登录接口并保存 token / session。
|
||||
- `RemoteAuthProvider`:用于真实后端,负责请求登录接口并保存 token / session;当前只保留接口边界并返回未配置错误。
|
||||
- 前端只关心登录、退出和当前会话,不关心 provider 细节。
|
||||
- 默认本地账号由 `appconfig` 初始化,用户名为 `admin`,默认密码为 `admin123`,密码以 salt + SHA-256 hash 形式保存。
|
||||
- 登录成功、失败和退出会写入 `audit_logs`。
|
||||
|
||||
## 日志架构
|
||||
|
||||
@@ -118,8 +123,6 @@ appconfig(
|
||||
)
|
||||
```
|
||||
|
||||
目标新增表:
|
||||
|
||||
```sql
|
||||
auth_sessions(
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -127,8 +130,8 @@ auth_sessions(
|
||||
username TEXT,
|
||||
provider TEXT,
|
||||
token TEXT,
|
||||
created_at DATETIME,
|
||||
expires_at DATETIME,
|
||||
created_at TEXT,
|
||||
expires_at TEXT,
|
||||
active INTEGER
|
||||
)
|
||||
```
|
||||
@@ -141,10 +144,12 @@ audit_logs(
|
||||
target_type TEXT,
|
||||
target_id TEXT,
|
||||
detail TEXT,
|
||||
created_at DATETIME
|
||||
created_at TEXT
|
||||
)
|
||||
```
|
||||
|
||||
目标新增表:
|
||||
|
||||
```sql
|
||||
app_logs(
|
||||
id INTEGER PRIMARY KEY,
|
||||
@@ -208,7 +213,7 @@ image_task_results(
|
||||
- 第二窗口保持当前小窗定位,不参与最大化、尺寸恢复和主布局填充逻辑。
|
||||
- 后续增强再保存主窗口尺寸和最大化状态,下次启动恢复用户选择。
|
||||
|
||||
实现状态:主窗口初始尺寸、居中、可调整大小、根容器和主布局填充已落地;主应用路由骨架已落地。窗口尺寸持久化依赖设置 schema 后续实现。
|
||||
实现状态:主窗口初始尺寸、居中、可调整大小、根容器和主布局填充已落地;主应用路由骨架已落地;登录 provider 边界已落地。窗口尺寸持久化依赖设置 schema 后续实现。
|
||||
|
||||
## 关键风险
|
||||
|
||||
|
||||
Reference in New Issue
Block a user