想想我的Nodejs/MongoDB應用程序的註冊流程,並想知道當用戶註冊時是否真的需要檢查電子郵件地址是否已經在數據庫中。我應該存儲重複的電子郵件地址嗎?
我讓我的用戶通過點擊我將發送給他們的電子郵件來驗證他們的電子郵件地址。他們必須在登錄之前完成此操作。一旦他們點擊這個鏈接,我會在數據庫中將該電子郵件標記爲verified
。考慮到這一點,我認爲,如果有人註冊了相同的電子郵件地址(無論出於何種原因)並不重要,因爲它不會被標記爲verified
,除非他們可以訪問電子郵件帳戶。
但是,我想知道它是否會影響性能,當涉及到通過電子郵件地址搜索數據庫中的用戶時。例如,用戶使用電子郵件地址登錄。在這種情況下建議在email
和verified
上建立索引是否明智?
我忽略了一些可能成爲安全缺陷的東西嗎?
一些有趣的點,謝謝 - 用戶將無法創建第二個帳戶,因爲如果該電子郵件地址被驗證,那麼電子郵件將無法註冊。關於「垃圾」問題,我認爲這總是會成爲一個問題。我也可以清除在特定時間內未被驗證的帳戶。我的做法的一個原因是,它阻止人/機器註冊不是他們自己的電子郵件並阻止其他用戶。 – tommyd456
@ tommyd456如果這是您的擔憂,您可以允許嘗試註冊「待處理」地址的人(已註冊但尚未驗證的地址)要求再次發送確認電子郵件。 – robertklep
是的,這就是我的問題中「已覈實」的含義。所以你不認爲會有大量用戶的性能問題? – tommyd456