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).
Antworten:
Ich bevorzuge keine Pro / Contra-Listen und versuche stattdessen, über Vorteile und Herausforderungen nachzudenken.
Herausforderung:
Einige Benutzer werden versucht sein, ihre E-Mail-Adresse von ihrem ISP zu verwenden. Das Verknüpfen mit einer E-Mail allein kann für Benutzer schwierig sein, die vergessen haben, ihre E-Mail auf allen Websites, für die sie sich angemeldet haben, zu aktualisieren, bevor sie den ISP wechseln.
Stattdessen:
Sie sollten in Betracht ziehen, einem Benutzer zu erlauben, mehrere Adressen sowie eine vom Benutzer ausgewählte ID anzugeben, und dann den Benutzer entscheiden zu lassen, was er tun möchte. Vielleicht sollten Sie dem Benutzer auch erlauben, ein OpenID-Konto bereitzustellen.
quelle
Ich persönlich bevorzuge es, nur meine E-Mail-Adresse als Benutzernamen zu verwenden. Es ist eine Sache weniger, an die ich mich erinnern muss, und ich muss mir nie Sorgen machen, dass mein bevorzugter Name bereits vergeben ist.
Nur meine 2 Cent!
quelle
Ich denke du hast einen PRO verpasst:
Benutzer werden sich wahrscheinlich an ihre E-Mail-Adresse erinnern. Da E-Mail-Adressen eindeutig sind, müssen sie sich keine Sorgen machen, dass ihr bevorzugter Benutzername bereits vergeben ist.
quelle
Nachteile
quelle
Als Benutzer von Websites kann ich Ihnen sagen, dass ich es hasse, unnötige Benutzernamen auswendig zu lernen. Ich benutze keinen eindeutigen Griff oder etwas anderes, daher kann ich mich nie erinnern, welche Variation meines Namens ich verwendet habe, die noch nicht genommen wurde. Ich würde viel lieber meine E-Mail-Adresse eingeben.
Außerdem mag ich OpenID.
quelle
CON: Nicht jeder hat eine E-Mail-Adresse. Überlegen Sie, ob eine interne Anwendung jemals auf Ihre Datenbank zugreift. Wenn Sie ein Geschäft laufen, die Menschen werden aufgerufen und eine Bestellung per Telefon stellen und sich weigern , eine E-Mail - Adresse zur Verfügung zu stellen. Wenn Sie also eine E-Mail-Adresse als Standardbenutzer-ID haben, sollten Sie sicherstellen, dass Alternativen in das System gelangen. (Dies hängt natürlich vom Kontext ab.)
Ich habe das auf die harte Tour gelernt.
quelle
Ein Setup, das Sie möglicherweise in Betracht ziehen sollten: Haben Sie sowohl einen Benutzernamen als auch eine E-Mail. Die E-Mail wird zum Anmelden verwendet und immer privat gehalten. Der Benutzername wird verwendet, um den Benutzer bei öffentlichen Interaktionen zu identifizieren, z. B. beim Posten eines Kommentars. Es wird etwas sicherer, da beide Hälften der Benutzeranmeldeinformationen privat bleiben. Wenn Sie einen Benutzernamen sowohl für die Anmeldung als auch für die öffentliche Identifizierung verwenden, ist die Hälfte der Anmeldung bereits bekannt.
Ich stimme Ihnen definitiv zu, dass Sie in den meisten Fällen nur eine minimale Registrierung haben, aber je nachdem, was Sie tun, möchten Sie dies möglicherweise gegen zusätzliche Sicherheit für Ihre Benutzer abwägen. Vier Felder sind für die Registrierung nicht unverschämt (Benutzername, E-Mail, Passwort, Passwort bestätigen). Wenn Sie sich besonders abenteuerlustig fühlen, können Sie sie auf drei reduzieren, indem Sie das Feld Passwort bestätigen löschen, oder auf zwei, indem Sie ihnen ein Passwort per E-Mail senden dass sie sich später ändern können.
quelle
PROFI
Menschen hassen es, einen eindeutigen Namen erstellen zu müssen, der zu ihrer ID passt und der noch nicht für die Registrierung für eine Website verwendet wurde. Aus diesem Grund wird die Benutzer-ID als E-MAIL-ADRESSE so geschätzt .
Beispiel : TStamper1930, der sich tatsächlich an 1930 am Ende meines Namens erinnern möchte, den ich wirklich wollte
quelle
CON: Wenn ein Hacker versuchen kann, massenweise zufällige E-Mail-Adressen zu registrieren, kann er anhand der fehlgeschlagenen Registrierungen herausfinden, welche dieser Adressen gültig sind. Dies ist eine Taktik, mit der Listen bekannter gültiger E-Mail-Adressen zusammengestellt werden können, die auf dem Spam-Schwarzmarkt ein heißes Gut sind.
Obwohl ich jetzt darüber nachdenke, ist dies ein Problem, das jede Website betrifft, die im Rahmen des Registrierungsprozesses nach einer E-Mail-Adresse fragt, unabhängig davon, ob es einen separaten Benutzernamen gibt oder nicht. Aber es gibt immer noch etwas zu überlegen.
quelle
CON: Wenn ich meine E-Mail-Adresse ändere, sind plötzlich alle meine Kontonamen ungültig. Mein Name ändert sich nicht, meine E-Mail jedoch häufig. Ich habe nach einigen Jahren gelegentlich eine Website erneut besucht und bin festgefahren ... Wie war meine E-Mail-Adresse vor zwei Jahren ???
quelle
Halten Sie sich an E-Mail-Adressen, die überall verwendet werden. Die meisten großen Websites verwenden sie. Sie sind einzigartig, sodass der Benutzer nicht nach einem Namen suchen muss, der nicht von anderen verwendet wird. Außerdem vergessen Benutzer ihre E-Mail-Adressen nicht (in den meisten Fällen) Fälle zumindest :)), was im Gegensatz zu Benutzernamen, die sie immer wieder vergessen, wenn sie Ihre Website nicht sehr oft besuchen.
Sie sollten sich keine Sorgen machen, dass sie zu lang sind, da alle gängigen Browser (IE, FF usw.) die automatische Vervollständigung von Formularen anbieten, die standardmäßig aktiviert ist. Geben Sie also die ersten Buchstaben in Ihre E-Mail ein und Sie erhalten eine Dropdown-Liste (dh Autovervollständigungsliste) Wenn Sie nur auf klicken, um die gesamte E-Mail einzugeben, gebe ich persönlich fast nie die E-Mail-Adresse vollständig ein. Ich gebe immer die ersten Buchstaben ein und wähle dann die E-Mail aus der Dropdown-Liste für die automatische Vervollständigung aus. Wenn Sie zulassen, dass Benutzer erinnert werden (mithilfe eines Kontrollkästchens "Angemeldet bleiben" und dauerhafter Cookies), ist dies ein weiterer Grund, sich darüber keine Sorgen zu machen.
Ich weiß nichts über Ihre App, aber normalerweise sind Benutzer mit mehreren Konten in den meisten Apps nicht wünschenswert.
quelle
Ein Nachteil könnte sein, dass bei einer E-Mail-Adresse die Anmeldung von Personen erraten und Brute-Force-Angriffe versucht werden können. Das ist kein großes Problem, da die Logins heute auf den meisten Websites öffentlich angezeigt werden.
Der größte Vorteil ist, dass Anmeldungen auf diese Weise leichter zu merken sind.
quelle
Ein gutes Setup besteht darin, Benutzername und E-Mail zu benötigen. Das Anmelden des Benutzers mit E-Mail-Adresse oder Benutzername ist sehr benutzerfreundlich. Ein zusätzlicher Vorteil ist, dass der Benutzer seine E-Mail-Adresse ändern kann. Es würde auch mehrere Konten für eine E-Mail erlauben.
quelle
Um Ihr Problem zu lösen, ist die E-Mail zu lang, um sie jedes Mal einzugeben. Ich habe die StringScan Ruby-Bibliothek implementiert.
usw..
Ändern Sie dann einfach die Anmeldemethode, damit entweder E-Mail oder Anmeldung mit dem Kennwort übereinstimmen.
Dies funktioniert genauso wie Google oder Mobileme. Ein Benutzer kann einfach seinen E-Mail-Benutzernamen eingeben (dh Benutzername anstelle von [email protected]).
quelle
Wenn Sie Ihre Benutzer nicht dazu zwingen möchten, sich bei Ihrer Anwendung bei Facebook oder einem anderen sozialen Netzwerk anzumelden (die meisten Leute scheinen sich nicht darum zu kümmern), können Sie beim Referenzieren einfach die E-Mail-Adresse ihres sozialen Netzwerks als "Benutzer-ID" verwenden andere Tabellen / Dokumente (MySQL, Mongo usw.).
Ich habe festgestellt, dass der Vorteil bei der Verwendung von Social-Media-Anmeldungen darin besteht, dass das gesamte soziale Netzwerk für die gesamte Sicherheit gesorgt hat, einschließlich der Tatsache, dass 2 Benutzer nicht dieselbe E-Mail-Adresse oder denselben Benutzernamen in ihrer Datenbank haben dürfen, sodass Sie keinen Code mehr benötigen für all das. Dies ist nur meine persönliche Präferenz.
quelle