dramaling-app/docs/02_design/function-specs/05_用戶認證功能規格.md

13 KiB
Raw Blame History

用戶認證功能規格文檔

📋 功能概述

功能名稱: 用戶認證與帳戶管理系統
建立日期: 2025-09-08
最後更新: 2025-09-08
負責團隊: 產品/設計/開發

主要功能

  • 多元化註冊登入:支援電子郵件、社交媒體、手機號碼等方式
  • 安全密碼管理:密碼重置、變更和安全性驗證機制
  • 帳戶資料管理:個人資料編輯、隱私設定和偏好配置
  • 多帳戶支援:帳戶切換、合併和管理功能
  • 安全性保護:雙重驗證、登入歷史和異常檢測

適用場景

  • 新用戶首次使用應用程式的註冊流程
  • 既有用戶的日常登入和帳戶存取
  • 忘記密碼或帳戶資訊的找回流程
  • 多平台帳戶的統一管理和同步
  • 帳戶安全性的維護和提升

與其他功能的關聯

  • 學習進度系統: 帳戶綁定學習記錄和成就數據
  • 社交功能: 好友關係和社群互動的身份基礎
  • 訂閱系統: 付費狀態和VIP權限的帳戶關聯
  • 道具商店: 購買記錄和虛擬資產的帳戶歸屬
  • 個人化系統: 學習偏好和介面設定的用戶配置

📱 涉及的UI畫面

主要畫面

  1. UI_Login_Main - 主要登入頁面
  2. UI_SignUp_Main - 用戶註冊頁面
  3. UI_PasswordReset_Form - 密碼重置表單
  4. UI_PasswordReset_Popup - 密碼重置確認彈窗
  5. UI_Account_List - 帳戶列表管理頁面
  6. UI_Account_Option - 帳戶選項設定頁面

輔助畫面

  1. UI_Profile_Settings - 個人資料設定頁面
  2. UI_Onboarding_Welcome - 新用戶歡迎引導
  3. 雙重驗證設定頁面 - 安全性強化功能
  4. 隱私設定頁面 - 個人資料隱私控制

🎯 詳細畫面規格

UI_Login_Main - 主要登入頁面

功能說明

  • 畫面目的: 提供既有用戶安全快捷的登入體驗,支援多種認證方式
  • 進入條件: 應用程式啟動時檢測到未登入狀態,或用戶主動登出後
  • 退出條件: 成功完成身份驗證進入主應用,或切換到註冊流程

畫面欄位細節

欄位名稱 資料類型 必填 預設值 驗證規則 顯示條件
電子郵件/用戶名 String - 電子郵件格式或3-20字用戶名 始終顯示
密碼 String - 8-50字包含字母和數字 始終顯示
記住我選項 Boolean false true/false 始終顯示
自動登入選項 Boolean false true/false 記住我勾選後顯示
驗證碼 String - 4-6位數字或字母 異常登入時顯示
錯誤提示訊息 String - 錯誤訊息文字 登入失敗時顯示
登入歷史提示 String - 上次登入資訊 成功登入用戶顯示

互動元素

元素名稱 元素類型 點擊行為 狀態變化 備註
登入按鈕 按鈕 提交登入表單進行驗證 正常->載入中 主要行動按鈕
Google登入按鈕 按鈕 跳轉Google OAuth流程 - 第三方登入選項
Facebook登入按鈕 按鈕 跳轉Facebook OAuth流程 - 第三方登入選項
Apple登入按鈕 按鈕 跳轉Apple Sign In流程 - iOS平台優先顯示
忘記密碼連結 連結 跳轉密碼重置流程 - 幫助用戶找回密碼
註冊帳號連結 連結 跳轉註冊頁面 - 新用戶註冊入口
顯示/隱藏密碼 按鈕 切換密碼顯示狀態 隱藏<->顯示 提升輸入體驗
遊客模式按鈕 按鈕 以遊客身份進入應用 - 功能限制的體驗模式

使用者操作流程

  1. 表單填寫: 輸入帳號密碼 → 選擇記住選項 → 確認輸入無誤
  2. 身份驗證: 提交登入 → 系統驗證 → 安全性檢查 → 成功登入
  3. 第三方登入: 選擇第三方平台 → OAuth授權 → 帳戶綁定 → 完成登入
  4. 異常處理: 登入失敗 → 查看錯誤提示 → 修正資訊 → 重新嘗試

異常狀況處理

  • 密碼錯誤: 顯示錯誤次數 → 3次後要求驗證碼 → 5次後暫時鎖定
  • 帳號不存在: 提示帳號不存在 → 引導到註冊頁面 → 或檢查輸入錯誤
  • 網路問題: 顯示連線錯誤 → 提供重試選項 → 或啟用離線模式
  • 安全異常: 檢測到異常登入 → 要求額外驗證 → 發送安全通知

UI_SignUp_Main - 用戶註冊頁面

功能說明

  • 畫面目的: 引導新用戶完成帳戶創建,收集必要資訊並建立學習檔案
  • 進入條件: 從登入頁面點擊註冊,或首次使用應用程式
  • 退出條件: 成功建立帳戶進入歡迎流程,或返回登入頁面

畫面欄位細節

欄位名稱 資料類型 必填 預設值 驗證規則 顯示條件
電子郵件 String - 有效電子郵件格式 始終顯示
用戶名 String - 3-20字僅字母數字底線 始終顯示
密碼 String - 8-50字包含大小寫字母、數字 始終顯示
確認密碼 String - 必須與密碼欄位相同 始終顯示
真實姓名 String - 2-50字 始終顯示
出生年月 Date - 合理年齡範圍 始終顯示
學習目標 Select - 預設選項清單 始終顯示
英語程度 Select "初學者" 初學者/中級/高級 始終顯示
服務條款同意 Boolean false 必須為true 始終顯示
隱私政策同意 Boolean false 必須為true 始終顯示
行銷資訊同意 Boolean false true/false 始終顯示

互動元素

元素名稱 元素類型 點擊行為 狀態變化 備註
註冊按鈕 按鈕 提交註冊表單 正常->載入中 驗證通過後啟用
用戶名檢查按鈕 按鈕 檢查用戶名可用性 正常->檢查中 即時驗證功能
密碼強度指示器 進度條 顯示密碼強度 弱->中->強 即時回饋
服務條款連結 連結 開啟服務條款頁面 - 在新視窗開啟
隱私政策連結 連結 開啟隱私政策頁面 - 在新視窗開啟
返回登入連結 連結 返回登入頁面 - 既有用戶快速通道
Google快速註冊 按鈕 Google帳戶快速建立 - 簡化註冊流程

UI_PasswordReset_Form - 密碼重置表單

功能說明

  • 畫面目的: 幫助忘記密碼的用戶安全地重設新密碼
  • 進入條件: 從登入頁面點擊"忘記密碼"連結
  • 退出條件: 成功重置密碼返回登入頁面,或取消返回登入

畫面欄位細節

欄位名稱 資料類型 必填 預設值 驗證規則 顯示條件
電子郵件/用戶名 String - 有效格式 第一步顯示
驗證碼 String - 6位數字 第二步顯示
新密碼 String - 8-50字強度要求 第三步顯示
確認新密碼 String - 必須與新密碼相同 第三步顯示
步驟指示器 Number 1 1-3 始終顯示

互動元素

元素名稱 元素類型 點擊行為 狀態變化 備註
發送驗證碼按鈕 按鈕 發送郵件驗證碼 正常->發送中 60秒冷卻時間
驗證並繼續按鈕 按鈕 驗證碼確認進入下一步 正常->驗證中 驗證成功後進入重置
完成重置按鈕 按鈕 提交新密碼完成重置 正常->處理中 最終確認按鈕
重新發送按鈕 按鈕 重新發送驗證碼 禁用->啟用 冷卻時間後可用
返回登入按鈕 按鈕 取消重置返回登入 - 任何步驟都可返回

UI_Account_List - 帳戶列表管理頁面

功能說明

  • 畫面目的: 管理用戶的多個帳戶,支援帳戶切換和統一管理
  • 進入條件: 從個人設定進入帳戶管理,或多帳戶切換需求
  • 退出條件: 選擇目標帳戶完成切換,或完成帳戶管理操作

畫面欄位細節

欄位名稱 資料類型 必填 預設值 驗證規則 顯示條件
當前活躍帳戶 Object - 帳戶物件 始終顯示
關聯帳戶列表 Array [] 帳戶陣列 有多帳戶時顯示
帳戶類型標記 String - 本地/Google/Facebook/Apple 每個帳戶顯示
最後登入時間 DateTime - 日期時間格式 每個帳戶顯示
同步狀態 String "已同步" 已同步/同步中/同步失敗 每個帳戶顯示

互動元素

元素名稱 元素類型 點擊行為 狀態變化 備註
切換帳戶按鈕 按鈕 切換到選中帳戶 當前->目標 需要重新驗證
添加帳戶按鈕 按鈕 綁定新的登入方式 - 支援多平台綁定
帳戶設定按鈕 按鈕 進入特定帳戶設定 - 跳轉到帳戶選項
解除綁定按鈕 按鈕 解除帳戶關聯 綁定->解綁 需要確認操作
同步資料按鈕 按鈕 手動同步學習資料 正常->同步中 確保資料一致性
合併帳戶按鈕 按鈕 合併重複帳戶資料 - 高級帳戶管理功能

🔄 完整使用者流程

新用戶註冊流程

[首次開啟應用] → [選擇註冊方式]
    ↓
[UI_SignUp_Main 填寫註冊資訊] → [驗證並建立帳戶]
    ↓
[UI_Onboarding_Welcome 歡迎引導] → [進入主應用功能]

用戶登入流程

[開啟應用] → [UI_Login_Main 登入頁面]
    ↓
[選擇登入方式] → [身份驗證] → [安全檢查]
    ↓
[成功登入] → [載入用戶資料] → [進入主功能]

密碼重置流程

[忘記密碼] → [UI_PasswordReset_Form 重置表單]
    ↓
[輸入帳號] → [發送驗證碼] → [驗證身份]
    ↓
[設定新密碼] → [UI_PasswordReset_Popup 成功確認] → [返回登入]

帳戶管理流程

[個人設定] → [UI_Account_List 帳戶列表]
    ↓
[選擇管理操作] → [UI_Account_Option 帳戶選項]
    ↓
[完成設定變更] → [同步更新] → [確認生效]

📊 商業邏輯規則

帳戶安全策略

  • 密碼要求: 最少8位包含大小寫字母、數字和特殊字符
  • 登入限制: 5次錯誤後鎖定1小時異常IP需要額外驗證
  • 會話管理: 7天免登入期限跨設備最多3個活躍會話
  • 資料加密: 敏感資訊AES-256加密傳輸TLS 1.3保護

用戶體驗優化

  • 記住登入: 本地設備保存登入狀態,提升使用便利性
  • 快速註冊: 第三方OAuth整合降低註冊門檻
  • 帳戶合併: 智能檢測重複帳戶,提供合併建議
  • 資料同步: 跨設備即時同步學習進度和個人設定

隱私保護機制

  • 最小化收集: 僅收集功能必需的個人資訊
  • 用戶控制: 提供完整的資料查看、修改、刪除權限
  • 透明化處理: 清楚說明資料用途和處理方式
  • 合規要求: 遵循GDPR、CCPA等國際隱私法規

🧪 測試要點

功能測試

  • 各種登入方式都能正常運作
  • 註冊流程完整且資料正確保存
  • 密碼重置郵件發送和驗證有效
  • 帳戶切換功能正常且資料同步
  • 安全驗證機制有效防護
  • 第三方OAuth整合穩定可靠

安全性測試

  • 密碼加密存儲和傳輸安全
  • SQL注入和XSS攻擊防護
  • 暴力破解和撞庫攻擊防禦
  • 會話劫持和CSRF攻擊保護
  • 敏感資料洩露風險評估

用戶體驗測試

  • 表單填寫體驗流暢直觀
  • 錯誤提示資訊清楚有幫助
  • 載入時間和響應速度acceptable
  • 跨設備登入同步快速準確
  • 輔助功能和無障礙設計完善

📝 開發注意事項

前端開發

  • 敏感資訊輸入需要即時驗證和安全處理
  • 第三方OAuth需要正確處理回調和錯誤狀態
  • 表單驗證需要前後端雙重檢查
  • 會話狀態需要安全存儲和定期檢查

後端開發

  • 用戶密碼需要使用bcrypt等安全雜湊算法
  • JWT令牌需要適當的過期時間和刷新機制
  • 用戶資料需要嚴格的訪問控制和權限檢查
  • 登入日誌需要完整記錄用於安全分析

整合注意事項

  • 第三方服務需要處理服務中斷和API變更
  • 資料庫操作需要事務處理和併發控制
  • 郵件服務需要可靠的發送和重試機制
  • 監控系統需要實時檢測異常登入行為

📚 參考資源

  • UI截圖:
    • docs/02_design/views/UI_Login_Main.png
    • docs/02_design/views/UI_SignUp_Main.png
    • docs/02_design/views/UI_PasswordReset_Form.png
    • docs/02_design/views/UI_Account_List.png
  • API文檔: docs/04_technical/api/authentication.md
  • 設計規範: docs/02_design/ui-ux-guidelines.md
  • 安全規範: docs/04_technical/security-guidelines.md

📅 版本歷史

版本 日期 修改內容 修改者
v1.0 2025-09-08 初始版本建立,完整用戶認證流程設計 Claude AI

文檔狀態: 🟢 已完成
最後檢查: 2025-09-08
下次檢查: 2025-09-15