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

304 lines
12 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-09
**最後更新**: 2025-09-09
**負責團隊**: 前端Web/設計/開發
**對應Mobile規格**: `../mobile/05_用戶認證功能規格.md`
### 主要功能
- 多元化註冊登入支援Email、第三方OAuth、SSO等方式
- 安全密碼管理,包含強度檢測、加密存儲、定期更新提醒
- 多帳戶整合,支援多個第三方帳戶綁定和統一管理
- 會話管理,靈活的登入狀態控制和安全登出
- 帳戶安全保護,二次認證、異常登入檢測、帳戶鎖定機制
- 個人資料管理,完整的用戶資訊編輯和隱私控制
### Web端特色功能
- **SSO企業登入**: 支援企業級單一登入(SAML/OIDC)
- **多設備管理**: 查看和管理所有登入設備
- **記住登入狀態**: 可選擇記住登入30天/永久
- **密碼管理器整合**: 與瀏覽器密碼管理器無縫整合
- **安全金鑰支援**: WebAuthn/FIDO2安全金鑰登入
- **帳戶資料匯出**: GDPR合規的個人資料匯出功能
- **進階隱私設定**: 詳細的隱私控制和資料共享設定
### 適用場景
- 企業和教育機構的統一帳戶管理
- 需要高安全性的商務用戶認證
- 多設備跨平台的帳戶同步需求
- 家庭用戶的多成員帳戶管理
### 與其他功能的關聯
- **學習系統**: 認證狀態決定學習內容和功能權限
- **道具商店**: 付費功能需要安全的帳戶認證
- **社交功能**: 帳戶綁定支援社交分享和好友系統
- **數據分析**: 用戶認證數據用於個性化學習推薦
- **客服系統**: 帳戶問題的客服支援和身份驗證
## 💻 涉及的Web頁面
### 主要頁面
1. **Page_Login_Main_W** - 登入主頁面 (Web版)
2. **Page_Register_Main_W** - 註冊主頁面 (Web版)
3. **Page_Password_Reset_W** - 密碼重設頁面 (Web版)
4. **Page_Profile_Main_W** - 個人資料頁面 (Web版)
5. **Page_Account_Settings_W** - 帳戶設定頁面 (Web版)
6. **Page_Security_Settings_W** - 安全設定頁面 (Web版)
### Web專用頁面
1. **Page_Device_Management_W** - 設備管理頁面 (Web專用)
2. **Page_Privacy_Settings_W** - 隱私設定頁面 (Web專用)
3. **Page_Data_Export_W** - 資料匯出頁面 (Web專用)
4. **Page_Account_Linking_W** - 帳戶綁定管理 (Web專用)
5. **Page_Enterprise_SSO_W** - 企業SSO設定 (Web專用)
### 輔助頁面
1. **Page_Email_Verification_W** - 電子郵件驗證頁面
2. **Page_Two_Factor_Setup_W** - 二次認證設定頁面
3. **Page_Account_Recovery_W** - 帳戶恢復頁面
4. **Modal_Security_Alert_W** - 安全警告模態視窗
## 🎯 詳細頁面規格
### Page_Login_Main_W - 登入主頁面 (Web版)
#### 功能說明
- **頁面目的**: 在桌面環境提供安全便捷的用戶登入體驗
- **進入條件**: 訪問需要認證的功能或直接輸入登入URL
- **退出條件**: 成功登入後跳轉到目標頁面或主頁
#### Web版佈局特點
- **居中登入卡片**: 響應式登入表單,支援多種螢幕尺寸
- **第三方登入區域**: 並列顯示多個第三方登入選項
- **安全提示區域**: 顯示安全建議和最近登入資訊
- **企業登入入口**: 企業用戶的SSO登入入口
- **背景視覺設計**: 品牌一致的背景圖片或動畫
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 登入帳號 | String | 是 | - | Email格式或用戶名 | 主要輸入框 |
| 登入密碼 | String | 是 | - | 6-128字符 | 密碼輸入框 |
| 記住登入 | Boolean | 否 | false | true/false | 記住登入選項 |
| 記住時長 | String | 否 | "30days" | 時長枚舉 | 記住登入子選項 |
| 驗證碼 | String | 否 | - | 驗證碼格式 | 安全策略觸發時 |
| 登入方式 | String | 是 | "email" | 登入方式枚舉 | 登入方式切換 |
| 企業網域 | String | 否 | - | 網域格式 | 企業登入模式 |
| 上次登入時間 | Date | 否 | - | 日期時間 | 歡迎回來提示 |
| 登入裝置資訊 | String | 否 | - | 裝置資訊 | 安全提示 |
#### Web版互動元素
| 元素名稱 | 元素類型 | 操作方式 | 快捷鍵 | 狀態變化 | 備註 |
|---------|---------|----------|--------|----------|------|
| 帳號輸入框 | 文本框 | 點擊/自動焦點 | Tab | 空白→輸入中 | 支援自動完成 |
| 密碼輸入框 | 密碼框 | 點擊/Tab | Tab | 隱藏→顯示 | 顯示/隱藏切換 |
| 登入按鈕 | 按鈕 | 點擊/Enter | Enter | 正常→登入中 | 主要操作按鈕 |
| 忘記密碼連結 | 連結 | 點擊/F鍵 | F | - | 跳轉密碼重設 |
| Google登入 | 按鈕 | 點擊/G鍵 | G | 正常→認證中 | 第三方OAuth |
| Apple登入 | 按鈕 | 點擊/A鍵 | A | 正常→認證中 | 第三方OAuth |
| 企業SSO | 按鈕 | 點擊/E鍵 | E | 正常→跳轉中 | 企業登入入口 |
| 密碼顯示切換 | 按鈕 | 點擊/Ctrl+H | Ctrl+H | 隱藏↔顯示 | 密碼可視性控制 |
| 驗證碼刷新 | 按鈕 | 點擊/R鍵 | R | - | 重新獲取驗證碼 |
#### Web版使用者操作流程
1. **基本登入**: 輸入帳號密碼 → 選擇記住登入 → 點擊登入 → 驗證成功進入系統
2. **第三方登入**: 選擇第三方平台 → 跳轉認證 → 授權確認 → 回到應用完成登入
3. **企業登入**: 選擇企業登入 → 輸入企業網域 → 跳轉SSO → 企業認證 → 自動登入
4. **安全驗證**: 觸發安全檢查 → 輸入驗證碼 → 通過二次認證 → 成功登入
### Page_Privacy_Settings_W - 隱私設定頁面 (Web專用)
#### 功能說明
- **頁面目的**: 提供完整的隱私控制設定符合GDPR等隱私法規要求
- **進入條件**: 從帳戶設定進入或隱私政策連結進入
- **退出條件**: 保存隱私設定或取消修改
#### Web專有隱私功能
- **資料處理同意**: 詳細的資料處理用途說明和同意選項
- **Cookie控制**: 細粒度的Cookie類別控制
- **資料共享設定**: 控制資料與第三方的共享範圍
- **行為追蹤控制**: 學習行為和使用數據的追蹤設定
- **資料保留政策**: 個人資料的保留期限設定
- **匿名化選項**: 資料匿名化處理的選擇
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 資料收集同意 | Object | 是 | {} | 同意設定物件 | 分類同意區域 |
| Cookie偏好設定 | Object | 是 | {} | Cookie設定 | Cookie控制面板 |
| 行銷通訊同意 | Boolean | 是 | false | true/false | 通訊偏好設定 |
| 第三方資料共享 | Object | 是 | {} | 共享設定物件 | 資料共享控制 |
| 個人化設定 | Boolean | 是 | true | true/false | 個人化同意 |
| 分析資料收集 | Boolean | 是 | false | true/false | 分析同意設定 |
| 資料匯出格式 | String | 否 | "json" | 格式枚舉 | 資料匯出選項 |
| 帳戶刪除原因 | String | 否 | - | 1-500字 | 刪除帳戶時 |
### Page_Device_Management_W - 設備管理頁面 (Web專用)
#### 功能說明
- **頁面目的**: 管理所有已登入的設備,提供安全的設備控制功能
- **進入條件**: 從安全設定進入或安全警告時引導進入
- **退出條件**: 完成設備管理或返回安全設定
#### Web專有設備管理
- **活躍設備列表**: 顯示所有當前登入的設備
- **設備詳細資訊**: 設備類型、瀏覽器、IP位置、登入時間
- **遠程登出**: 可遠程登出指定設備或全部設備
- **可信設備**: 標記可信設備,減少安全驗證
- **登入通知**: 新設備登入的電子郵件通知設定
#### 頁面欄位細節
| 欄位名稱 | 資料類型 | 必填 | 預設值 | 驗證規則 | 顯示條件 |
|---------|---------|------|--------|----------|----------|
| 設備列表 | Array | 是 | [] | 設備陣列 | 主要列表區域 |
| 當前設備標識 | String | 是 | - | 設備ID | 當前設備標記 |
| 設備類型 | String | 是 | - | 設備類型枚舉 | 設備圖示 |
| 瀏覽器資訊 | String | 是 | - | 瀏覽器字串 | 技術資訊 |
| IP位置 | String | 是 | - | IP地址 | 地理位置 |
| 最後活躍時間 | Date | 是 | - | 日期時間 | 活動時間 |
| 可信狀態 | Boolean | 是 | false | true/false | 信任標記 |
| 登入通知設定 | Boolean | 是 | true | true/false | 通知偏好 |
## 🌐 Web端技術特點
### 企業級認證整合
- **SAML 2.0**: 支援SAML單一登入協議
- **OpenID Connect**: OIDC標準認證流程
- **LDAP整合**: 企業LDAP目錄服務整合
- **Active Directory**: 微軟AD域控制器整合
### 現代Web認證標準
- **WebAuthn**: 無密碼登入和硬體安全金鑰
- **FIDO2**: 強認證標準支援
- **PassKeys**: 蘋果/Google PassKeys整合
- **Biometric**: 瀏覽器生物識別API
### 安全性增強
- **CSP嚴格模式**: 內容安全政策防止XSS
- **SameSite Cookie**: 防止CSRF攻擊
- **HSTS**: 強制HTTPS傳輸安全
- **Rate Limiting**: API速率限制防止暴力破解
### 隱私合規支援
- **GDPR合規**: 歐盟一般資料保護規範
- **CCPA合規**: 加州消費者隱私法案
- **Cookie Law**: 歐盟Cookie指令合規
- **Data Portability**: 資料可攜權實現
## ⌨️ Web版快捷鍵系統
### 認證頁面快捷鍵
- `Tab` - 在表單欄位間切換
- `Enter` - 提交當前表單
- `Esc` - 取消當前操作
- `F` - 快速前往忘記密碼
- `G` - Google登入
- `A` - Apple登入
- `E` - 企業登入
### 設定頁面快捷鍵
- `Ctrl + S` - 保存設定
- `Ctrl + R` - 重置為預設值
- `Ctrl + E` - 匯出個人資料
- `Ctrl + D` - 下載資料副本
- `Delete` - 刪除選中項目
### 安全操作快捷鍵
- `Ctrl + L` - 登出當前設備
- `Ctrl + Shift + L` - 登出所有設備
- `Ctrl + T` - 切換可信設備狀態
- `F5` - 重新整理設備列表
- `Ctrl + N` - 開啟新的安全金鑰設定
## 📊 Web版業務邏輯差異
### 會話管理策略
- **長效會話**: 支援30天/永久記住登入
- **多標籤同步**: 跨瀏覽器標籤的登入狀態同步
- **自動續期**: 活躍使用時自動延長會話期限
- **閒置檢測**: 檢測用戶閒置並提示安全登出
### 密碼安全增強
- **密碼強度指示**: 即時密碼強度評估和建議
- **密碼歷史**: 防止重複使用近期密碼
- **自動生成**: 集成密碼生成器建議強密碼
- **洩漏檢測**: 檢測密碼是否出現在已知洩漏資料庫
### 隱私控制細化
- **分級同意**: 不同類別資料的分別同意機制
- **同意撤回**: 隨時撤回資料處理同意
- **影響說明**: 清楚說明撤回同意對功能的影響
- **資料最小化**: 僅收集必要的最少資料
## 🧪 Web版測試要點
### 認證流程測試
- [ ] 基本帳密登入流程正常
- [ ] 第三方OAuth登入正常
- [ ] 密碼重設流程完整
- [ ] 帳戶註冊驗證正常
- [ ] 二次認證設定和使用正常
### 安全功能測試
- [ ] 異常登入檢測和通知
- [ ] 帳戶鎖定機制正確觸發
- [ ] 設備管理功能完整
- [ ] 遠程登出功能正常
- [ ] 安全金鑰登入正常
### 隱私合規測試
- [ ] GDPR資料匯出功能正常
- [ ] Cookie同意機制正確
- [ ] 資料處理同意記錄完整
- [ ] 帳戶刪除流程合規
- [ ] 隱私政策同意機制正常
### 跨瀏覽器測試
- [ ] Chrome認證功能完整
- [ ] Firefox第三方登入正常
- [ ] Safari WebAuthn支援正常
- [ ] Edge企業SSO功能正常
## 📝 Web端開發注意事項
### 安全實作要求
- 所有認證相關請求強制HTTPS
- 敏感資訊絕不在前端儲存
- 實施嚴格的CSP政策
- 使用安全的會話管理機制
### 隱私合規實作
- 實施同意管理平台(CMP)
- 提供完整的資料處理透明度
- 實現用戶權利行使機制
- 定期隱私影響評估
### 使用者體驗設計
- 簡化認證流程,減少摩擦
- 提供清楚的錯誤訊息和解決方案
- 支援無障礙設備和輔助技術
- 響應式設計適應各種螢幕尺寸
### 效能最佳化
- 認證頁面快速載入(<1秒)
- 第三方認證回調處理最佳化
- 設備列表分頁載入避免效能問題
- 使用適當的快取策略
---
**文檔狀態**: 🟢 已完成
**最後更新**: 2025-09-09
**版本**: v1.0
**相關文檔**:
- `../mobile/05_用戶認證功能規格.md` - 對應的Mobile版規格
- `../common/業務規則.md` - 共同業務邏輯
- `../common/數據模型.md` - 數據結構定義
- `../common/API規格.md` - API接口規格