# Auth 模块文件简化评估

## 📊 当前文件分析

### 1. `constant/UiConstants.kt` - UI 常量

**内容**：只有4个常量（MSG_LOGIN_SUCCESS, MSG_LOGIN_FAILED, MSG_REGISTER_SUCCESS, MSG_REGISTER_FAILED）

**使用情况**：
- ✅ 只在 `LoginViewModel` 和 `RegisterViewModel` 中使用
- ❌ 只有4个常量，不值得单独文件

**建议**：✅ **删除**，将常量内联到 ViewModel 的 `companion object` 中

---

### 2. `utils/JWTUtil.kt` - JWT 解析工具

**内容**：JWT Token 解析和过期检查

**使用情况**：
- ✅ 只在 `TokenStore` 和 `AuthManager` 中使用
- ✅ JWT 解析是认证模块的核心功能

**建议**：✅ **合并到 TokenStore**，将 JWTUtil 的方法合并到 TokenStore 中作为私有方法

---

### 3. `storage/TokenStore.kt` - Token 存储

**内容**：Token 的存储、读取、清除

**使用情况**：
- ✅ 在 `AuthManager`、`AuthLocalDataSourceImpl` 等地方广泛使用
- ✅ 虽然使用 `StorageImpl`，但提供了业务语义封装（saveToken vs putString）

**建议**：✅ **保留**，但合并 JWTUtil 的功能

**理由**：
1. ✅ 提供业务语义（saveToken, getAccessToken 等）
2. ✅ 统一 Key 管理（KEY_ACCESS_TOKEN 等）
3. ✅ 封装业务逻辑（isLoggedIn 结合 JWT 验证）

---

## 🎯 优化方案

### 方案：简化为 1 个文件

```
app/auth/
├── storage/
│   └── TokenStore.kt  ← 合并 JWTUtil 的功能
└── ui/
    └── viewmodel/
        ├── LoginViewModel.kt   ← 内联 UiConstants
        └── RegisterViewModel.kt  ← 内联 UiConstants
```

**删除**：
- ❌ `constant/UiConstants.kt` → 内联到 ViewModel
- ❌ `utils/JWTUtil.kt` → 合并到 TokenStore

**保留**：
- ✅ `storage/TokenStore.kt`（合并 JWTUtil 后）

---

## ✅ 结论

1. **UiConstants** - 删除，内联到 ViewModel
2. **JWTUtil** - 删除，合并到 TokenStore
3. **TokenStore** - 保留（合并 JWTUtil 后），必要的业务封装

