diff --git a/docs/TODO.md b/docs/TODO.md index b581b72..8245064 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1419,6 +1419,12 @@ WS 一回來就對得上。**要做就先做 `completeTrip`**。 - 🔑 **session 失效(401)不可去註銷**:那支 API 只會再回一次 401(並再觸發一次清理)。 乘客端原本 `logout()` 一支打天下,這批**拆成 `logout()`/`_clearSession()`** ——與司機端同一個結構,也是第三輪學到的同一條。 + ⚠️ **這個決定留下的洞已由後端補上(2026-07-30,dispatch + [PR #65](https://github.com/thothawei/fleet-dispatch/pull/65))**:401 不註銷 ⇒ + 舊使用者的那一列會留在 `device_tokens` 裡,而 **FCM token 換人登入時不會變**, + 於是「A 的 token 過期 → B 在同一台手機登入 → A 的行程通知與**對話內容預覽** + 全送到 B 的手機」。後端改成「一支 token 只能有一位主人」(註冊時搬走別人身上的同一支), + **App 這端維持不變仍然是安全的**。 - **註冊失敗、對帳失敗一律靜默**:兩者都是使用者沒按任何東西的背景動作 (同 2026-07-28 修掉的那一族)。推播只是輔助管道,WS 與 15 秒輪詢照常運作。