[006] 【隱私】為什麼不要求帳號?免簡訊驗證的決定讓我們省下的遠不只是費用
身為一個獨立開發者,資源永遠是有限的。當我著手設計 FollowMe8 的第一個版本時,如何讓使用者「順暢無負擔地」加入隊伍,同時兼顧隱私與成本,是我們面對的第一個挑戰。傳統的帳號註冊流程,往往包含電子郵件或手機簡訊驗證,這在帶來便利的同時,也帶來了不小的隱憂與費用。

我們最初考慮的選項,當然也包括最常見的「透過手機號碼簡訊驗證建立帳號」模式。這種方式能確保身份唯一性,方便用戶找回密碼,也能在一定程度上防止濫用。然而,仔細評估後,這個方案對於一個「臨時性組隊、跟車防走失」的工具來說,弊大於利。
首先,簡訊驗證會產生實質的費用。對於單人維護、預算有限的專案,每一筆簡訊成本都是累積的負擔。其次,要求用戶註冊帳號、輸入手機號碼,無形中增加了使用的門檻。想像一下,在戶外臨時組隊,或只是想試用看看時,繁瑣的註冊流程可能直接讓潛在用戶卻步。更重要的是,收集手機號碼這類敏感個資,意味著更大的隱私責任與潛在的資安風險。一旦資料外洩,對於個人開發者來說,是難以承受的災難。
最終,我們選擇了一個務實且高度重視隱私的方案:訪客模式。在訪客模式下,使用者無需提供任何個人資料(如手機號碼、電子郵件),也不需經過簡訊驗證。當訪客加入活動時,系統會為其生成一個獨特的 `member_id`,並將其儲存在用戶手機本地的 `UserDefaults` 中。在後端資料庫設計上,如 `database_design.md` 所述,訪客的 `activity_members.user_id` 欄位被明確地設為 NULL,意即在 `users` 表中沒有任何記錄。

這項決策的優勢顯而易見。除了省下可觀的簡訊驗證費用,最關鍵的是大幅降低了用戶的使用門檻,實現「零摩擦」的即時加入。用戶可以放心地體驗 App,無需擔心個人資料被綁定或外洩。在 API 設計上,訪客模式透過 `member_id` 參數進行認證,而非傳統的 JWT Token,簡化了認證流程,同時確保了其無法建立活動的權限限制,精確對齊「防走失」而非「社交平台」的核心功能。
這個設計對用戶的實際影響是:他們可以像使用計時器一樣,隨用隨拋,高度掌握自己的資料。當活動結束,使用者甚至可以刪除 App 而不留下任何伺服器端的個人紀錄。這種「用完即走」的輕量級體驗,讓 FollowMe8 不僅省電無感,更在隱私上做到了極致,確保使用者在山區騎行時,能專注於風景與隊友,而非擔心個人資料的隱患。
👉 了解更多關於 FollowMe8 短期活動追蹤定位 App:
https://followme8.ofuyuan.com/