¿Cuáles son las ventajas y desventajas de usar una dirección de correo electrónico como ID de usuario?

StackOverflow https://stackoverflow.com/questions/647172

Pregunta

Estoy creando una aplicación web que requiere registro / autenticación, y estoy considerando usar una dirección de correo electrónico como la única identificación de usuario. Esto es lo que veo como pros y contras (actualizado con respuestas):

PROS

  1. Un campo menos para completar durante el registro (solo sería dirección de correo electrónico, contraseña y verificar contraseña). Soy un gran admirador del registro minimalista.

  2. Una dirección de correo electrónico es más fácil de recordar. (gracias Mitch , Jeremy )

  3. No tiene que preocuparse de que su nombre de usuario favorito ya esté en uso; usted es el único que usa su dirección de correo electrónico. (gracias TStamper )

CONS

  1. El usuario tiene más que escribir cada vez que inicia sesión.

  2. ¿Qué sucede si un usuario quiere varias cuentas? Necesitarán otra dirección de correo electrónico. (¿Incluso quiero que un usuario pueda crear varias cuentas?)

  3. Fácil de adivinar para un atacante potencial (si conocen la dirección de correo electrónico del objetivo, conocen la identificación de inicio de sesión). (gracias Vasil )

  4. Los usuarios pueden verse tentados a usar la misma contraseña que usan para su cuenta de correo electrónico, lo cual es una mala seguridad. (gracias Thomas )

  5. Si cambia las direcciones de correo electrónico con frecuencia, puede ser difícil recordar qué dirección utilizó para registrarse en un sitio después de un largo receso. (gracias Software Monkey )

  6. Un pirata informático podría enviar correo no deseado al formulario de registro y usar el "correo electrónico ya recibido" respuestas para generar una lista de correos electrónicos válidos. (gracias David )

  7. No todos tienen una dirección de correo electrónico. (gracias Nicholas )

Si fuera con el correo electrónico como id, proporcionaría un mecanismo para permitir que se cambie en caso de que un usuario cambie de dirección. En este caso, los usuarios no publicarían contenido en un sitio público, por lo que no será necesario un nombre de usuario separado para proteger las direcciones de correo electrónico (pero es algo a tener en cuenta para otros sitios).

Otra opción es implementar OpenID (que es otro debate).

Esto parece funcionar para Google, pero sus servicios están estrechamente integrados. ¿Qué me he perdido en mi análisis? Tiene alguna recomendación? ¿Alguien tiene experiencias para compartir?

EDICIÓN FINAL

Gracias a todos por sus respuestas. Decidí usar el correo electrónico como id, pero luego permitir la creación de un nombre de usuario para iniciar sesión después del registro. Esto permite un poco de flexibilidad mientras mantiene el registro lo más corto posible. También evita problemas cuando un usuario cambia las direcciones de correo electrónico (solo puede iniciar sesión con su nombre de usuario y actualizarlo). También implementaré métodos para evitar la fuerza bruta de direcciones de correo electrónico fuera de los sistemas de registro e inicio de sesión (principalmente un período de enfriamiento después de repetidos intentos).

¿Fue útil?

Solución

Tiendo a no preferir listas pro / con, y en cambio trato de pensar en beneficios y desafíos.

Desafío:

Algunos usuarios se verán tentados a usar su dirección de correo electrónico de su ISP. Vincular solo un correo electrónico puede ser difícil para los usuarios que se olvidan de actualizar su correo electrónico en todos los sitios web en los que se han registrado antes de cambiar de ISP.

En cambio:

Debería considerar permitir que un usuario proporcione varias direcciones, así como la identificación seleccionada por el usuario y luego dejar que el usuario decida lo que quiere que desee hacer. Quizás también considere permitir que el usuario proporcione una cuenta OpenID.

Otros consejos

Personalmente, prefiero usar mi dirección de correo electrónico como nombre de usuario. Es una cosa menos para recordar, y nunca tengo que preocuparme de que mi nombre preferido ya esté en uso.

¡Solo mis 2 centavos!

Creo que te perdiste un PRO:

Es probable que los usuarios recuerden su dirección de correo electrónico; y como las direcciones de correo electrónico son únicas, nunca tienen que preocuparse de que ya se tome su nombre de usuario preferido.

CONS

  1. Cuando se usa la misma contraseña para la cuenta de correo electrónico, comprometer una automáticamente significa comprometer a la otra.

Como usuario de sitios web, puedo decirle que odio memorizar nombres de usuario innecesarios. No uso un identificador único ni nada, así que nunca puedo recordar qué variación de mi nombre usé que no se haya tomado. Prefiero escribir mi dirección de correo electrónico.

Además, me gusta OpenID.

CON: No todos tienen una dirección de correo electrónico. Considere si alguna aplicación interna accede a su base de datos. Si tiene una tienda, las personas llamarán y realizarán un pedido por teléfono y se negarán a proporcionar una dirección de correo electrónico. Entonces, si bien tener una dirección de correo electrónico como ID de usuario predeterminada es genial, asegúrese de permitir que ingresen alternativas en el sistema. (Por supuesto, esto depende del contexto).

Aprendí este de la manera difícil.

Una configuración que puede considerar: tener un nombre de usuario y un correo electrónico. El correo electrónico se usa para iniciar sesión y siempre se mantiene privado, el nombre de usuario se usa para identificar al usuario en cualquier interacción pública, como publicar un comentario. Resulta ser un poco más seguro ya que las dos mitades de las credenciales de inicio de sesión del usuario se mantienen privadas, mientras que si usa un nombre de usuario para el inicio de sesión y la identificación pública, ya se conoce la mitad del inicio de sesión.

Definitivamente estoy de acuerdo con usted para tener un registro mínimo en la mayoría de los casos, pero dependiendo de lo que esté haciendo, es posible que desee equilibrar eso con una mayor seguridad para sus usuarios. Cuatro campos no son indignantes para el registro (nombre de usuario, correo electrónico, contraseña, contraseña de confirmación), y si se siente particularmente aventurero, puede reducirlo a tres al soltar el campo de contraseña de confirmación, o dos al enviarles una contraseña por correo electrónico que pueden cambiar más tarde.

PRO

La gente odia tener que crear un nombre único que se ajuste a su identificación y que no se haya tomado para registrarse en un sitio ... Por eso, la identificación de usuario como DIRECCIÓN DE CORREO ELECTRÓNICO es tan aceptada.

ex : TStamper1930, que realmente quiere recordar 1930 al final de mi nombre que realmente quería

CON: Si un pirata informático puede intentar registrar direcciones de correo electrónico aleatorias en masa, podrá averiguar cuáles de esas direcciones son válidas en función de qué registros fallan. Esta es una táctica que se puede utilizar para armar listas de direcciones de correo electrónico válidas conocidas, que son un producto de moda en el mercado negro de spam.

Aunque ahora que lo pienso, ese es un problema que afecta a cualquier sitio web que solicite una dirección de correo electrónico como parte del proceso de registro, independientemente de si hay un nombre de usuario por separado. Pero todavía es algo en lo que pensar.

CON: Si cambio mi dirección de correo electrónico, de repente todos los nombres de mi cuenta no son válidos. Mi nombre no cambia, pero mi correo electrónico a menudo sí. Ocasionalmente volví a visitar un sitio después de varios años y me quedé atrapado ... ¿cuál era mi dirección de correo electrónico hace dos años ???

Se adhieren a las direcciones de correo electrónico que se usan en todas partes, en realidad la mayoría de los sitios web principales los usan, son únicos, por lo que evitan que el usuario tenga problemas para encontrar un nombre que no sea utilizado por otros, y los usuarios no olvidarán sus direcciones (en la mayoría de los casos al menos :)), que es diferente a los nombres de usuario que seguirán olvidando si no visitan su sitio muy a menudo.

No debería preocuparse de que sean demasiado largos, ya que todos los principales navegadores (IE, FF, etc.) ofrecen autocompletar a formularios que están habilitados de forma predeterminada, por lo que escribe las primeras letras en su correo electrónico y obtiene un lista desplegable (es decir, lista de autocompletar) donde solo hace clic para ingresar el correo electrónico completo, personalmente casi nunca escribo la dirección de correo electrónico completa, siempre escribo las primeras letras y luego selecciono el correo electrónico de la lista desplegable de autocompletar. Además, si permite que los usuarios sean recordados (usando una casilla de verificación Recordarme y cookies persistentes), será otra razón para no preocuparse por eso.

No sé acerca de su aplicación, pero generalmente los usuarios que tienen varias cuentas no son deseables en la mayoría de las aplicaciones.

Una desventaja podría ser que si se trata de una dirección de correo electrónico, las personas pueden adivinar el inicio de sesión y los intentos de ataques de fuerza bruta. Lo cual no es realmente un gran problema, ya que en la mayoría de los sitios de hoy los inicios de sesión se muestran públicamente.

El mayor profesional es que los inicios de sesión son más fáciles de recordar de esta manera.

Una buena configuración es requerir nombre de usuario y correo electrónico. Permitir que el usuario inicie sesión con dirección de correo electrónico o nombre de usuario es muy fácil de usar. Un beneficio adicional es que el usuario puede cambiar su dirección de correo electrónico. También permitiría varias cuentas para un correo electrónico.

Para resolver que el elemento del correo electrónico sea demasiado largo para escribirlo todo el tiempo. He implementado la biblioteca 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. ..

Luego, simplemente cambie el método de inicio de sesión para permitir que el correo electrónico o el inicio de sesión coincidan con la contraseña.

Esto funciona igual que google o mobileme. Un usuario puede elegir simplemente escribir su nombre de usuario de correo electrónico (es decir, nombre de usuario en lugar de nombre de usuario@gmail.com).

Si no le importa obligar a sus usuarios a iniciar sesión en su aplicación con Facebook o alguna otra red social (a la mayoría de las personas no parece importarles), entonces puede usar su correo electrónico de red social como su 'ID de usuario 'al hacer referencia a otras tablas / documentos (MySQL, Mongo, etc.).

He notado que la ventaja de usar los inicios de sesión en las redes sociales es que toda la seguridad se ha ocupado de dicha red social, incluida la no permitir que 2 usuarios tengan el mismo correo electrónico o nombre de usuario en su base de datos, lo que le ahorra la molestia de tener que codificar todo eso. Esto es solo mi preferencia personal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top