feat: add auth provider boundary

This commit is contained in:
QiuSW
2026-07-08 23:37:19 +08:00
parent 811a9c889f
commit 5aaac0b166
19 changed files with 788 additions and 40 deletions
+11 -8
View File
@@ -61,24 +61,27 @@
- 失败时返回错误给前端。
- 平台依赖或能力缺失时,不应导致主窗口不可启动。
## 目标新增服务
### AuthService
目标方法:
文件:`internal/services/auth_service.go`
- `Login(username string, password string) (Session, error)`:登录并返回会话。
- `Logout() error`:退出当前会话。
- `GetCurrentSession() (Session, error)`:读取当前会话。
- `GetAuthProviders() []models.AuthProviderOption`:返回可用 provider 列表。
- `GetAuthMode() string`:读取当前 auth provider。
- `SetAuthMode(mode string) error`:切换 `local` 或 `remote` provider。
- `Login(provider string, username string, password string) (models.AuthSession, error)`:登录并返回会话。
- `Logout() error`:退出当前会话。
- `GetCurrentSession() (models.AuthSession, error)`:读取当前有效会话;无会话时返回空 session。
约束:
- 前端不得写死固定账号密码。
- `LocalAuthProvider` 只用于演示和离线模式。
- `RemoteAuthProvider` 用于真实后端登录。
- `LocalAuthProvider` 只用于演示和离线模式,默认账号来自后端初始化配置。
- 默认本地演示账号:`admin` / `admin123`;密码在数据库中以 salt + SHA-256 hash 保存,不在前端页面或绑定中保存。
- `RemoteAuthProvider` 用于真实后端登录,目前保留边界并返回未配置错误。
- 登录成功、失败和退出必须写审计日志。
## 目标新增服务
### AuditLogService
目标方法: