dramaling-app/docs/02_design/function-specs/web/user-authentication-web.md

348 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 用戶認證功能規格文檔 (Web版)
## 📋 功能概述
**功能名稱**: 用戶認證與權限管理系統 (Web端)
**建立日期**: 2025-09-11
**最後更新**: 2025-09-11
**負責團隊**: 前端Web/設計/開發
**對應Mobile規格**: `../mobile/user-authentication-mobile.md`
### 整合共用規範
> 本規格基於以下共用模組,請參閱對應規格文件:
> - **[共同業務規則](../common/business-rules.md)** - 完整的用戶認證與權限系統
> - **[用戶流程圖](../common/user-flow-diagrams.md)** - 認證流程設計
### 主要功能 (基於共用業務規則)
- **多重認證方式**: Email註冊、第三方登入 (Google、Apple)
- **用戶等級分級**: 免費用戶、試用用戶、訂閱用戶、進階用戶、高價值用戶
- **會話管理**: JWT Token機制、自動續期、多設備登入控制
- **密碼安全**: bcrypt加密、複雜度驗證、歷史記錄防護
- **帳戶安全**: 異地登入驗證、失敗次數限制、帳戶鎖定機制
- **訂閱管理**: 7天免費體驗、月費/年費訂閱、自動續訂
### Web端特色功能
- **多標籤會話**: 同一帳戶支援多個瀏覽器標籤
- **記住登入**: 最長90天的免密碼登入
- **桌面通知**: 帳戶安全事件的桌面提醒
- **密碼管理整合**: 與瀏覽器密碼管理器整合
- **企業登入**: SSO單點登入支援
- **進階安全**: 雙因素認證 (2FA) 選項
### 適用場景
- 桌面環境的安全性要求較高的登入
- 需要長期會話保持的學習環境
- 企業用戶的統一身份認證
- 多設備學習進度同步需求
### 與其他功能的關聯
- **用戶等級系統**: 不同等級用戶的功能權限差異
- **訂閱系統**: 付費用戶的權益管理和自動續訂
- **學習進度**: 跨設備的學習資料同步
- **道具商店**: 購買權限和支付驗證
- **社群功能**: 好友系統和競爭排行榜
## 💻 涉及的Web頁面 (認證系統架構)
### 主要頁面
1. **Page_Login_W** - 登入頁面 (Web版)
2. **Page_Register_W** - 註冊頁面 (Web版)
3. **Page_Password_Reset_W** - 密碼重設頁面 (Web版)
4. **Page_Profile_Settings_W** - 用戶資料設定頁面 (Web版)
5. **Page_Account_Security_W** - 帳戶安全設定頁面 (Web版)
### Web專用頁面
1. **Page_SSO_Login_W** - 企業單點登入頁面 (Web專用)
2. **Page_Two_Factor_Auth_W** - 雙因素認證設定頁面 (Web專用)
3. **Page_Session_Management_W** - 會話管理頁面 (Web專用)
### 訂閱相關頁面
1. **Page_Subscription_Plans_W** - 訂閱方案頁面 (Web版)
2. **Page_Trial_Activation_W** - 免費體驗啟動頁面 (Web版)
3. **Page_Subscription_Management_W** - 訂閱管理頁面 (Web版)
### 輔助頁面
1. **Modal_Auth_Confirm_W** - 身份驗證確認模態視窗
2. **Modal_Session_Timeout_W** - 會話逾時提醒視窗
3. **Page_Account_Verification_W** - 帳戶驗證頁面
## 🎯 詳細頁面規格 (基於共用業務規則)
### Page_Login_W - 登入頁面
#### 功能說明 (整合共用規範)
- **頁面目的**: 用戶安全登入和身份驗證
- **認證規則**: 參考 [共同業務規則 - 用戶認證](../common/business-rules.md#🔑-用戶註冊與認證規則)
- **會話管理**: 參考 [共同業務規則 - 會話管理](../common/business-rules.md#br-auth-03-會話管理規則)
#### 登入方式支援
基於共用業務規則的多重認證機制:
- **Email + 密碼**: 傳統登入方式
- **Google 登入**: OAuth 2.0 整合
- **Apple ID 登入**: Sign in with Apple
- **記住登入**: 最長90天免密碼登入
- **企業SSO**: 單點登入整合 (Web專用)
#### 安全機制整合
基於 [共同業務規則 - 密碼安全](../common/business-rules.md#br-auth-02-密碼安全規則)
- **失敗限制**: 連續5次錯誤鎖定15分鐘
- **異地驗證**: 異常登入地點的安全驗證
- **會話控制**: 最多3個設備同時登入
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| Email輸入框 | String | 是 | - | Email格式 | 始終顯示 |
| 密碼輸入框 | String | 是 | - | 8-128字符 | 始終顯示 |
| 記住登入選項 | Boolean | 否 | false | true/false | 複選框 |
| 登入失敗計數 | Number | 是 | 0 | 0-5 | 錯誤時顯示 |
| 異地登入警示 | Boolean | 否 | false | true/false | 檢測到異地時 |
| 會話有效期 | Number | 是 | 7 | 1-90天 | 記住登入時 |
| 雙因素認證碼 | String | 否 | - | 6位數字 | 開啟2FA時 |
| 登入地點資訊 | Object | 是 | {} | 地點物件 | 安全記錄 |
#### Web版互動元素
| 元素名稱 | 元素類型 | 操作方式 | 快捷鍵 | 狀態變化 | 備註 |
|---------|---------|----------|--------|----------|------|
| Email輸入框 | 輸入框 | 點擊/Tab | Tab | 空白→輸入中 | 自動填入支援 |
| 密碼輸入框 | 密碼框 | 點擊/Tab | Tab | 空白→輸入中 | 顯示/隱藏切換 |
| 顯示密碼按鈕 | 按鈕 | 點擊/Ctrl+H | Ctrl+H | 隱藏↔顯示 | 密碼可見性 |
| 記住登入勾選 | 複選框 | 點擊/空白鍵 | Space | 未勾↔已勾 | 持久會話 |
| 登入按鈕 | 按鈕 | 點擊/Enter | Enter | 正常→處理中 | 主要行動 |
| Google登入按鈕 | 按鈕 | 點擊/Ctrl+G | Ctrl+G | 正常→跳轉中 | OAuth跳轉 |
| Apple ID登入 | 按鈕 | 點擊/Ctrl+A | Ctrl+A | 正常→跳轉中 | OAuth跳轉 |
| 忘記密碼連結 | 連結 | 點擊/Alt+F | Alt+F | - | 密碼重設 |
| 註冊連結 | 連結 | 點擊/Alt+R | Alt+R | - | 新用戶註冊 |
### Page_Register_W - 註冊頁面
#### 功能說明 (整合帳戶唯一性)
- **頁面目的**: 新用戶帳戶註冊和初始設定
- **唯一性規則**: 參考 [共同業務規則 - 帳戶註冊](../common/business-rules.md#br-auth-01-帳戶註冊規則)
- **密碼規則**: 參考 [共同業務規則 - 密碼安全](../common/business-rules.md#br-auth-02-密碼安全規則)
#### 註冊驗證機制
- **Email唯一性**: 一個Email只能註冊一個帳戶
- **第三方整合**: Google、Apple帳戶不能與已註冊Email重複
- **用戶名檢查**: 即時檢查用戶名可用性
- **密碼強度**: 大小寫字母+數字最少8字符
#### 初始化獎勵
基於 [共同業務規則 - 鑽石消費](../common/business-rules.md#br-pay-02-鑽石消費規則)
- **註冊贈送**: 新用戶註冊贈送1500鑽石
- **初始命條**: 新用戶獲得5個命條
- **體驗引導**: 自動啟動新手教學
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 用戶名稱 | String | 是 | - | 3-20字符 | 始終顯示 |
| Email地址 | String | 是 | - | Email格式 | 始終顯示 |
| 密碼 | String | 是 | - | 8-128字符 | 始終顯示 |
| 確認密碼 | String | 是 | - | 與密碼相同 | 始終顯示 |
| 用戶名可用性 | Boolean | 是 | false | true/false | 即時檢查 |
| Email唯一性 | Boolean | 是 | false | true/false | 即時檢查 |
| 密碼強度等級 | Number | 是 | 0 | 1-4級 | 強度指示器 |
| 服務條款同意 | Boolean | 是 | false | true/false | 必須同意 |
| 隱私政策同意 | Boolean | 是 | false | true/false | 必須同意 |
| 行銷通知同意 | Boolean | 否 | false | true/false | 可選項 |
### Page_Subscription_Plans_W - 訂閱方案頁面
#### 功能說明 (整合訂閱系統)
- **頁面目的**: 展示訂閱方案和免費體驗
- **訂閱規則**: 參考 [共同業務規則 - 付費用戶分級](../common/business-rules.md#br-user-01-付費用戶分級規則)
- **體驗機制**: 7天免費體驗訂閱
#### 訂閱方案架構
基於共用業務規則的用戶等級系統:
**試用用戶**
- 期限7天免費體驗訂閱
- 權益:完整功能體驗
- 轉換:試用期結束後需選擇訂閱或取消
**訂閱用戶**
- 定價NT$600/月 或 NT$6,000/年 (8.3折優惠)
- 權益:無限制學習次數,進階統計報告
- 特權每日3次免費限時挑戰命條恢復加速
**進階用戶** (第二階段)
- 定價NT$900/月 或 NT$9,000/年 (8.3折優惠)
- 權益:訂閱用戶功能 + 進階自訂學習功能 + 優質TTS
- 特權:更多命條上限,更快回復速度,專屬學習模式
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 當前用戶等級 | String | 是 | "免費用戶" | 用戶等級 | 頁面頂部 |
| 體驗資格狀態 | Boolean | 是 | false | true/false | 是否已使用體驗 |
| 選中方案 | String | 否 | - | 方案ID | 用戶選擇時 |
| 計費週期 | String | 是 | "月付" | 月付/年付 | 價格切換 |
| 自動續訂設定 | Boolean | 是 | true | true/false | 訂閱選項 |
| 付款方式 | String | 否 | - | 支付類型 | 確認訂閱時 |
| 優惠代碼 | String | 否 | - | 0-20字符 | 優惠折扣 |
| 試用剩餘天數 | Number | 否 | - | 0-7天 | 試用期間顯示 |
### Page_Account_Security_W - 帳戶安全設定頁面
#### 功能說明 (整合安全機制)
- **頁面目的**: 管理帳戶安全設定和隱私控制
- **安全功能**: 密碼變更、雙因素認證、登入記錄
- **隱私控制**: 資料匯出、帳戶刪除、隱私設定
#### 安全設定選項
- **密碼管理**: 密碼變更、強度檢查、歷史防重複
- **雙因素認證**: TOTP應用程式、SMS驗證
- **登入記錄**: 登入歷史、異常活動監控
- **設備管理**: 已登入設備列表、遠程登出
- **隱私控制**: 資料下載、帳戶刪除申請
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 當前密碼 | String | 否 | - | 當前密碼 | 密碼變更時 |
| 新密碼 | String | 否 | - | 密碼規則 | 密碼變更時 |
| 雙因素認證狀態 | Boolean | 是 | false | true/false | 安全設定 |
| 登入通知 | Boolean | 是 | true | true/false | 通知設定 |
| 異常活動警報 | Boolean | 是 | true | true/false | 安全警報 |
| 已登入設備列表 | Array | 是 | [] | 設備陣列 | 設備管理 |
| 最後密碼變更 | Date | 是 | - | 日期時間 | 安全指標 |
| 資料匯出請求 | Object | 否 | null | 請求物件 | 隱私管理 |
## 🌐 Web端技術特點 (整合安全規範)
### 響應式設計
- **桌面優先**: 1200px以上寬度的完整認證流程
- **表單優化**: 大螢幕友善的表單設計
- **多步驟引導**: 清晰的註冊和設定流程
- **無障礙設計**: 完整的鍵盤導航和螢幕閱讀器支援
### 安全技術整合
基於共用業務規則的安全實現:
- **JWT Token**: 安全的會話管理機制
- **OAuth 2.0**: 第三方登入整合
- **bcrypt加密**: 密碼安全儲存
- **HTTPS強制**: 所有認證流程加密傳輸
- **CSRF防護**: 跨站請求偽造防護
- **XSS防護**: 跨站腳本攻擊防護
### Web專用功能
- **瀏覽器整合**: 密碼管理器、自動填入
- **桌面通知**: Web Notifications API整合
- **離線檢測**: Network API狀態監控
- **會話儲存**: SessionStorage安全管理
- **Cookie管理**: 安全的Cookie設定
## ⌨️ Web版快捷鍵一覽
### 認證操作快捷鍵
- `Tab` - 在表單欄位間切換
- `Enter` - 確認登入/註冊
- `Esc` - 取消當前操作
- `Ctrl+H` - 顯示/隱藏密碼
- `Ctrl+G` - Google登入
- `Ctrl+A` - Apple ID登入
### 安全設定快捷鍵
- `Ctrl+P` - 開啟密碼變更
- `Ctrl+S` - 儲存設定變更
- `Ctrl+D` - 下載個人資料
- `F5` - 重新整理登入記錄
- `Delete` - 刪除選中的設備會話
### 頁面導航快捷鍵
- `Alt+L` - 跳轉登入頁面
- `Alt+R` - 跳轉註冊頁面
- `Alt+F` - 忘記密碼
- `Alt+S` - 安全設定
- `Alt+P` - 用戶資料設定
## 📊 Web版業務邏輯差異
### 認證管理增強
基於共用業務規則的Web端實現
- **多設備同步**: 跨設備的登入狀態同步
- **會話延長**: 付費用戶的會話有效期延長
- **企業整合**: SSO單點登入支援
- **進階安全**: 雙因素認證選項
### 訂閱管理優化
- **自動續訂**: 智能的續訂提醒和管理
- **升級降級**: 彈性的方案變更機制
- **發票管理**: 企業用戶的發票開立
- **退款處理**: 簡化的退款申請流程
### 用戶等級整合
基於 [共同業務規則 - 用戶角色分級](../common/business-rules.md#👥-用戶角色分級系統)
- **等級特權**: 不同等級的功能權限差異
- **升級機制**: 基於購買行為的自動升級
- **VIP服務**: 高價值用戶的專屬服務
- **權限控制**: 細粒度的功能權限管理
## 🧪 Web版測試要點
### 認證流程測試
- [ ] Email註冊和登入流程完整
- [ ] 第三方OAuth登入正常
- [ ] 密碼重設流程無誤
- [ ] 會話管理機制有效
### 安全機制測試
- [ ] 失敗次數限制機制
- [ ] 異地登入檢測準確
- [ ] 雙因素認證功能正常
- [ ] 密碼安全規則執行
### 訂閱系統測試
- [ ] 免費體驗啟動正常
- [ ] 訂閱方案切換無誤
- [ ] 自動續訂機制有效
- [ ] 取消訂閱流程完整
### 響應式測試
- [ ] 1920x1080 認證表單最佳化
- [ ] 1366x768 訂閱頁面適配
- [ ] 快捷鍵功能完整
- [ ] 無障礙設計符合標準
## 📝 Web端開發注意事項
### 前端開發
- 整合OAuth 2.0第三方登入SDK
- 實現安全的JWT Token管理
- 設計友善的多步驟表單流程
- 確保認證頁面的載入速度和安全性
### 業務邏輯整合
- 嚴格遵循 [共同業務規則](../common/business-rules.md) 的認證和訂閱系統
- 整合用戶等級系統和權限控制
- 實現與學習系統的無縫整合
- 確保跨平台的用戶資料同步
### 安全性要求
- 實現完整的OWASP安全標準
- 用戶敏感資料的加密保護
- 實時安全威脅檢測和防護
- 認證記錄的安全存儲和稽核
### 用戶體驗設計
- 簡潔直觀的認證流程設計
- 清楚的錯誤提示和解決方案
- 個人化的訂閱推薦和優惠
- 完善的幫助文檔和客服支援
---
**文檔狀態**: 🟢 已完成 (基於共用規範更新)
**最後更新**: 2025-09-11
**版本**: v2.0 - 整合完整用戶認證與訂閱系統
**相關文檔**:
- `../common/business-rules.md` - 共同業務規則
- `../common/user-flow-diagrams.md` - 用戶流程圖
- `../mobile/user-authentication-mobile.md` - 對應的Mobile版規格