Domanda

Sto creando un'app Web che richiede registrazione / autenticazione e sto prendendo in considerazione l'utilizzo di un indirizzo email come unico ID utente. Ecco quelli che vedo come pro e contro (aggiornato con risposte):

Pro

  1. Un campo in meno da compilare durante la registrazione (sarebbe solo indirizzo e-mail, password e password di verifica). Sono un grande fan della registrazione minimalista.

  2. Un indirizzo email è più facile da ricordare. (grazie Mitch , Jeremy )

  3. Non devi preoccuparti che il tuo nome utente preferito sia già stato preso: sei l'unico che utilizza il tuo indirizzo email. (grazie TStamper )

CONS

  1. L'utente ha più da scrivere ogni volta che effettua l'accesso.

  2. Cosa succede se un utente desidera più account? Avranno bisogno di un altro indirizzo email. (Voglio persino che un utente sia in grado di creare più account?)

  3. Facile da indovinare per un potenziale aggressore (se conoscono l'indirizzo e-mail del bersaglio, conoscono l'id di accesso). (grazie Vasil )

  4. Gli utenti potrebbero essere tentati di utilizzare la stessa password utilizzata per il proprio account e-mail, il che costituisce una protezione non valida. (grazie Thomas )

  5. Se si cambiano frequentemente gli indirizzi e-mail, potrebbe essere difficile ricordare quale indirizzo è stato utilizzato per registrarsi a un sito dopo una lunga pausa. (grazie Software Monkey )

  6. Un hacker potrebbe inviare spam al modulo di registrazione e utilizzare " email già presa " risposte per generare un elenco di email valide. (grazie David )

  7. Non tutti hanno un indirizzo email. (grazie Nicholas )

Se avessi scelto l'e-mail come ID, avrei fornito un meccanismo per consentirne la modifica nel caso in cui un utente cambi indirizzo. In questo caso gli utenti non pubblicheranno contenuti su un sito pubblico, quindi non sarà necessario un nome utente separato per proteggere gli indirizzi e-mail (ma è qualcosa da considerare per altri siti).

Un'altra opzione è implementare OpenID (che è un altro dibattito).

Questo sembra funzionare per Google, ma i loro servizi sono strettamente integrati. Cosa mi sono perso nella mia analisi? Avete consigli? Qualcuno ha esperienze da condividere?

MODIFICA FINALE

Grazie a tutti per le vostre risposte. Ho deciso di utilizzare l'e-mail come ID, ma quindi consentire la creazione di un nome utente a fini di accesso dopo la registrazione. Ciò consente un po 'di flessibilità mantenendo la registrazione il più breve possibile. Previene anche i problemi quando un utente cambia gli indirizzi e-mail (possono semplicemente accedere con il loro nome utente e aggiornarlo). Implementerò anche metodi per prevenire la forzatura bruta degli indirizzi e-mail al di fuori dei sistemi di registrazione e accesso (principalmente un periodo di raffreddamento dopo ripetuti tentativi).

È stato utile?

Soluzione

Tendo a non preferire le liste pro / contro, e invece provo a pensare a vantaggi e sfide.

Challenge:

Alcuni utenti saranno tentati di utilizzare il proprio indirizzo e-mail dal proprio ISP. Il collegamento a una sola e-mail può essere difficile per gli utenti che dimenticano di aggiornare la propria e-mail in tutti i siti Web a cui si sono registrati prima di cambiare ISP.

Invece:

Dovresti prendere in considerazione la possibilità di consentire a un utente di fornire più indirizzi, nonché un ID selezionato dall'utente e quindi lasciare che l'utente decida ciò che desidera fare. Forse potresti anche considerare di consentire all'utente di fornire un account OpenID.

Altri suggerimenti

Personalmente, preferisco usare il mio indirizzo email come nome utente. È una cosa in meno da ricordare e non devo mai preoccuparmi che il mio nome preferito sia già stato preso.

Solo i miei 2 centesimi!

Penso che ti sia perso un PRO:

È probabile che gli utenti ricordino il loro indirizzo e-mail; e poiché gli indirizzi e-mail sono unici, non devono mai preoccuparsi che il loro nome utente preferito sia già stato utilizzato.

CONS

  1. Quando viene utilizzata la stessa password per l'account e-mail, compromettere l'una significa automaticamente compromettere l'altra.

Come utente di siti Web, posso dirti che odio memorizzare nomi utente non necessari. Non uso una maniglia unica o altro, quindi non ricordo mai quale variante del mio nome ho usato e che non è stata già presa. Preferirei piuttosto digitare il mio indirizzo email.

Inoltre, mi piace OpenID.

CON: non tutti hanno un indirizzo e-mail. Considera se il tuo database è mai accessibile da un'applicazione interna. Se gestisci un negozio, le persone chiameranno e effettueranno un ordine per telefono e si rifiuteranno di fornire un indirizzo e-mail. Pertanto, pur avendo un indirizzo e-mail come ID utente predefinito è interessante, assicurati di consentire agli utenti alternativi di accedere al sistema. (Naturalmente, questo dipende dal contesto.)

Ho imparato questo nel modo più difficile.

Una configurazione che potresti prendere in considerazione: disporre sia di un nome utente che di un'e-mail. L'email viene utilizzata per l'accesso ed è sempre mantenuta privata, il nome utente viene utilizzato per identificare l'utente in qualsiasi interazione pubblica, come pubblicare un commento. Finisce per essere leggermente più sicuro in quanto entrambe le metà delle credenziali di accesso dell'utente vengono mantenute private, mentre se si utilizza un nome utente sia per l'accesso che per l'identificazione pubblica, metà dell'accesso è già nota.

Sono assolutamente d'accordo con te sull'avere una registrazione minima per la maggior parte dei casi, ma a seconda di ciò che stai facendo potresti voler bilanciare questo con una maggiore sicurezza per i tuoi utenti. Quattro campi non sono scandalosi per la registrazione (nome utente, e-mail, password, conferma password) e, se ti senti particolarmente avventuroso, potresti ridurlo a tre facendo cadere il campo di conferma della password o due inviando loro una password che possono cambiare in seguito.

PRO

Le persone odiano dover creare un nome univoco che si adatta al loro ID e che non è già stato preso per registrarsi a un sito ... Quindi è per questo che l'id utente come INDIRIZZO EMAIL è così abbracciato.

ex : TStamper1930, che in realtà vuole ricordare il 1930 alla fine del mio nome che desideravo davvero

CON: Se un hacker può provare a registrare indirizzi e-mail casuali in massa, sarà in grado di capire quali di questi indirizzi sono validi in base a quali registrazioni falliscono. Questa è una tattica che può essere utilizzata per mettere insieme elenchi di indirizzi e-mail validi noti, che sono una merce di spicco nel mercato nero dello spam.

Anche se ora che ci penso, questo è un problema che interessa qualsiasi sito Web che richiede un indirizzo e-mail come parte del processo di registrazione, indipendentemente dal fatto che esista o meno un nome utente separato. Ma è ancora qualcosa a cui pensare.

CON: Se cambio il mio indirizzo email, improvvisamente tutti i nomi dei miei account non sono validi. Il mio nome non cambia, ma spesso la mia email. Occasionalmente ho rivisitato un sito dopo diversi anni, e sono rimasto bloccato ... qual era il mio indirizzo e-mail due anni fa ???

Attenersi agli indirizzi e-mail che vengono utilizzati ovunque, in realtà la maggior parte dei principali siti Web li utilizza, sono unici, quindi salvano l'utente dalla difficoltà a trovare un nome non utilizzato da altri, inoltre gli utenti non dimenticheranno i loro indirizzi e-mail (nella maggior parte dei casi almeno :)), che è diverso dai nomi utente che continueranno a dimenticare se non visitano il tuo sito molto spesso.

Non dovresti preoccuparti che siano troppo lunghi poiché tutti i principali browser (IE, FF .. ecc.) offrono il completamento automatico ai moduli abilitati per impostazione predefinita, quindi digiti le prime lettere nella tua e-mail e ottieni un elenco a discesa (es. elenco di completamento automatico) in cui si fa semplicemente clic per inserire l'intera e-mail, personalmente non scrivo quasi mai per intero l'indirizzo e-mail, scrivo sempre le prime lettere quindi seleziono l'e-mail dall'elenco a discesa con completamento automatico. Inoltre, se consenti agli utenti di essere ricordati (utilizzando una casella di controllo Ricordami e cookie persistenti), sarà un altro motivo per non preoccupartene.

Non conosco la tua app, ma di solito gli utenti con più account non sono desiderabili nella maggior parte delle app.

Uno svantaggio potrebbe essere che se si tratta di un indirizzo e-mail l'accesso può essere indovinato da persone e tentativi di attacchi di forza bruta. Il che non è un grosso problema, dato che oggi sulla maggior parte dei siti gli accessi vengono visualizzati pubblicamente.

Il più grande pro è che gli accessi sono più facili da ricordare in questo modo.

Una buona configurazione è richiedere nome utente ed e-mail. Consentire all'utente di accedere con indirizzo e-mail o nome utente è molto intuitivo. Un ulteriore vantaggio è che l'utente può modificare il proprio indirizzo e-mail. Consentirebbe anche più account per una e-mail.

Per risolvere il fatto che il tuo elemento di posta elettronica sia troppo lungo per essere inserito ogni volta. Ho implementato la libreria StringScan Ruby.

require 'strscan'    
def signup!(user, &block)    
self.email = user[:email] unless user[:email].blank?    
str = StringScanner.new(self.email)    
str.scan_until(/@/)    
str.pre_match    
self.login = str.pre_match

etc ..

Quindi basta cambiare il metodo di accesso per consentire alla posta elettronica o al login di abbinare la password.

Funziona proprio come Google o Mobileme. Un utente può scegliere di digitare semplicemente il proprio nome utente e-mail (es. Nome utente anziché nomeutente@gmail.com.)

Se non ti interessa forzare i tuoi utenti ad accedere alla tua applicazione con Facebook o qualche altro social network (la maggior parte delle persone non sembra interessarsene), allora puoi semplicemente usare la loro e-mail sui social network come loro 'ID utente "quando si fa riferimento ad altre tabelle / documenti (MySQL, Mongo, ecc.).

Ho notato che il vantaggio di utilizzare gli accessi ai social media è che tutta la sicurezza è stata curata da detto social network, incluso il non consentire a 2 utenti di avere la stessa e-mail o nome utente nel loro database, risparmiando così il fastidio di dover codificare per tutto ciò. Questa è solo la mia preferenza personale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top