2016-05-16 6 views
0

Ich habe gerade über meinen Registrierungsfluss für meine Nodejs/MongoDB-App nachgedacht und mich gefragt, ob ich wirklich überprüfen muss, ob die E-Mail-Adressen bereits in der Datenbank sind, wenn sich Benutzer registrieren.Soll ich doppelte E-Mail-Adressen speichern?

Ich lasse meine Nutzer ihre E-Mail-Adresse bestätigen, indem Sie auf eine E-Mail klicken, die ich an sie senden werde. Sie müssen dies tun, bevor Sie sich einloggen. Sobald sie auf diesen Link klicken, dann werde ich diese E-Mail als verified in der Datenbank markieren. In diesem Sinne denke ich, dass es nicht wirklich wichtig ist, ob sich jemand mit derselben E-Mail-Adresse anmeldet (aus welchen Gründen auch immer), da er nicht als verified markiert wird, es sei denn, er kann auf den E-Mail-Account zugreifen.

Ich frage mich aber, ob es Auswirkungen auf die Leistung hat, wenn es um die Suche nach Benutzern in der Datenbank per E-Mail-Adresse geht. Beispielsweise melden sich Benutzer mit der E-Mail-Adresse an. Wäre es in diesem Fall ratsam, einen Index sowohl für email als auch für verified zu erstellen?

Habe ich etwas übersehen, das möglicherweise eine Sicherheitslücke darstellen könnte?

Antwort

0

Leistungsmäßig wird es wahrscheinlich nicht viel ausmachen (Sie haben wahrscheinlich bereits einen Index auf dem email Feld), aber ich denke nicht, dass Sie es trotzdem zulassen sollten.

Zum einen hat es das Potenzial, Junk-Daten in Ihre Datenbank hinzuzufügen. Zweitens würde es bestehenden Benutzern ermöglichen, versehentlich oder nicht einen zweiten Account mit der gleichen E-Mail-Adresse zu erstellen, der alle möglichen Probleme verursachen könnte.

Sie geben keinen bestimmten Grund für doppelte E-Mail-Adressen, aber eine doppelte Überprüfung ist nicht wirklich zeitaufwendig zu implementieren (Sie könnten auch einen eindeutigen Index auf email so die Datenbank wird einen Fehler ausgeben, wenn jemand versucht, eine bestehende Adresse neu zu registrieren).

+0

Einige interessante Punkte, danke - Benutzer könnten kein zweites Konto erstellen, denn wenn die E-Mail-Adresse verifiziert ist, kann die E-Mail nicht registriert werden. In Bezug auf das Thema "Junk" denke ich, dass dies immer ein Problem sein wird. Ich könnte auch Konten löschen, die innerhalb einer bestimmten Zeit nicht überprüft wurden. Ein Grund für meine Herangehensweise ist, dass es Menschen/Maschinen daran hindert, eine E-Mail zu registrieren, die ihnen nicht gehört, und andere Benutzer anzuhalten. – tommyd456

+0

@ tommyd456 Wenn dies Ihr Anliegen ist, können Sie Personen, die eine "ausstehende" Adresse registrieren möchten (eine, die registriert wurde, aber noch nicht verifiziert wurde) erlauben, die Bestätigungs-E-Mail erneut zu senden. – robertklep

+0

Ja, das habe ich in meiner Frage mit "verifiziert" gemeint. Sie glauben also nicht, dass bei einer großen Anzahl von Benutzern ein Leistungsproblem auftreten wird? – tommyd456

Verwandte Themen