Ich erstelle eine Web-App, für die eine Registrierung / Authentifizierung erforderlich ist, und erwäge, eine E-Mail-Adresse als einzige Benutzer-ID zu verwenden. Folgendes sehe ich als Vor- und Nachteile (aktualisiert mit Antworten):
PROS
Ein Feld weniger, das bei der Registrierung ausgefüllt werden muss (es handelt sich lediglich um E-Mail-Adresse, Passwort und Passwort bestätigen). Ich bin ein großer Fan von minimalistischer Registrierung.
Eine E-Mail-Adresse ist leichter zu merken. (Danke Mitch , Jeremy )
Sie müssen sich keine Sorgen machen, dass Ihr Lieblingsbenutzername bereits vergeben ist - Sie sind der einzige, der Ihre E-Mail-Adresse verwendet. (danke TStamper )
Nachteile
Der Benutzer muss bei jeder Anmeldung mehr eingeben.
Was ist, wenn ein Benutzer mehrere Konten möchte? Sie benötigen eine andere E-Mail-Adresse. (Soll ein Benutzer überhaupt mehrere Konten erstellen können?)
Für einen potenziellen Angreifer leicht zu erraten (wenn er die E-Mail-Adresse des Ziels kennt, kennt er die Anmelde-ID). (danke Vasil )
Benutzer könnten versucht sein, dasselbe Kennwort zu verwenden, das sie für ihr E-Mail-Konto verwenden, was eine schlechte Sicherheit darstellt. (danke Thomas )
Wenn Sie die E-Mail-Adresse häufig ändern, kann es schwierig sein, sich zu merken, mit welcher Adresse Sie sich nach einer langen Pause für eine Website angemeldet haben. (danke Software Monkey )
Ein Hacker könnte das Registrierungsformular als Spam versenden und mithilfe der Antworten "E-Mail bereits vergeben" eine Liste gültiger E-Mails erstellen. (danke David )
Nicht jeder hat eine E-Mail-Adresse. (danke Nicholas )
Wenn ich eine E-Mail als ID verwenden würde, würde ich einen Mechanismus bereitstellen, mit dem sie geändert werden kann, falls ein Benutzer die Adresse ändert. In diesem Fall würden Benutzer keine Inhalte auf einer öffentlichen Website veröffentlichen, sodass zum Schutz der E-Mail-Adressen kein separater Benutzername erforderlich ist (dies ist jedoch für andere Websites zu beachten).
Eine andere Möglichkeit ist die Implementierung von OpenID (eine ganz andere Debatte).
Dies scheint für Google zu funktionieren, aber ihre Dienste sind eng integriert. Was habe ich in meiner Analyse vermisst? Hast du irgendwelche Empfehlungen? Hat jemand Erfahrungen zu teilen?
FINAL EDIT
Vielen Dank für Ihre Antworten. Ich habe beschlossen, E-Mail als ID zu verwenden, aber nach der Registrierung die Erstellung eines Benutzernamens für Anmeldezwecke zuzulassen. Dies ermöglicht ein wenig Flexibilität und hält die Registrierung so kurz wie möglich. Es verhindert auch Probleme, wenn ein Benutzer E-Mail-Adressen ändert (er kann sich einfach mit seinem Benutzernamen anmelden und ihn aktualisieren). Ich werde auch Methoden implementieren, um das brutale Erzwingen von E-Mail-Adressen aus den Registrierungs- und Anmeldesystemen zu verhindern (hauptsächlich eine Abkühlungsphase nach wiederholten Versuchen).