核心方案
客戶端不存密碼,存 **Token (Access Token + Refresh Token)**。
流程
- 登錄成功 → 服務器返回 `access_token` (短效、如 2h) + `refresh_token` (長效、如 30天)。
- 客戶端**安全存儲** (Android `EncryptedSharedPreferences`、iOS `Keychain`)。
- App 啟動 → 檢查 `access_token` 是否過期:
- 未過期 → 直接進入主界面。
- 過期 → 用 `refresh_token` 請求新 `access_token`,成功則進入,失敗則跳轉登錄頁。
- 登出 → 刪除本地 Token,通知服務器撤銷 `refresh_token`。
安全加固
- Token 僅含用戶標識、過期時間、簽名 (JWT) 或隨機字符串 (服務端查表)。
- HTTPS 傳輸,防止竊聽。
- 設備指紋綁定,異常登錄觸發二次驗證。