0

我正在爲需要爲所有用戶設置雙因素身份驗證的服務設計Node + MySQL後端,作爲註冊過程的一部分。用戶首先提交一個主要電話號碼和密碼(用於登錄的電話號碼),然後服務器向其發送帶有六位數字代碼的短信。只有在他們輸入代碼後,他們的帳戶才能完全創建。SQL - 爲用戶存儲中間註冊信息的方法

這提出了在輸入用戶名/密碼之後但在驗證代碼之前如何爲中間狀態的用戶存儲數據的問題。這些「待處理用戶」不會在搜索中顯示,也不需要存儲常規用戶的所有數據,並且如果從未驗證,將在幾天後被刪除。此外,由於每個用戶都必須啓用TFA才能完全註冊,所以用戶數量將比「未決用戶數量」多得多。因此,讓所有用戶簡單地存儲「isVerified」標誌對我來說似乎並不明智。我在技術層面熟悉SQL,但沒有設計用於生產的數據庫的經驗,我想知道應該考慮採用哪些替代機制來解決上述問題。

我目前的想法是有一個單獨的待決用戶表,只有那些必須存儲中間註冊信息的列。當用戶驗證時,在真實用戶表中創建一行,複製註冊信息,並將相應行從掛起用戶表中刪除。然而,這使得確保主要電話號碼在兩個表中是唯一的(這是服務的附加要求)有點難以確定。

我應該考慮採用哪些方法來改進我的解決方案?

回答

0

您可以像存儲服務器上的會話信息一樣存儲此數據。