Каковы плюсы и минусы использования адреса электронной почты в качестве идентификатора пользователя? - PullRequest
66 голосов
/ 15 марта 2009

Я создаю веб-приложение, которое требует регистрации / аутентификации, и я рассматриваю вопрос об использовании адреса электронной почты в качестве единственного идентификатора пользователя. Вот что я вижу как плюсы и минусы (дополнено ответами):

ПРОФИ

  1. Еще одно поле, которое необходимо заполнить при регистрации (это будет просто адрес электронной почты, пароль и подтверждение пароля). Я большой поклонник минималистичной регистрации.

  2. Адрес электронной почты легче запомнить. (спасибо Митч , Джереми )

  3. Вам не нужно беспокоиться о том, что ваше любимое имя пользователя уже занято - вы единственный, кто использует ваш адрес электронной почты. (спасибо TStamper )

CONS

  1. Пользователь должен вводить больше при каждом входе в систему.

  2. Что делать, если пользователю нужны несколько учетных записей? Им понадобится другой адрес электронной почты. (Хочу ли я, чтобы пользователь мог создавать несколько учетных записей?)

  3. Легко угадать потенциальному злоумышленнику (если он знает адрес электронной почты цели, он знает идентификатор входа в систему). (спасибо Василь )

  4. Пользователи могут испытывать желание использовать тот же пароль, который они используют для своей учетной записи электронной почты, что является плохой безопасностью. (спасибо Томас )

  5. Если вы часто меняете адреса электронной почты, может быть трудно вспомнить, какой адрес вы использовали для регистрации на сайте после долгого перерыва. (спасибо Программное обеспечение Monkey )

  6. Хакер может спамить регистрационную форму и использовать ответы "электронная почта уже занята", чтобы создать список действительных электронных писем. (спасибо Дэвид )

  7. Не у всех есть адрес электронной почты. (спасибо Николай )

Если бы я использовал электронную почту в качестве идентификатора, я бы предоставил механизм, позволяющий изменять его в случае изменения пользователем адреса. В этом случае пользователи не будут публиковать контент на общедоступном сайте, поэтому отдельное имя пользователя не потребуется для защиты адресов электронной почты (но это необходимо учитывать для других сайтов).

Другим вариантом является реализация OpenID (что является еще одной дискуссией).

Кажется, это работает для Google, но их сервисы тесно интегрированы. Что я упустил в своем анализе? У вас есть какие-нибудь рекомендации? У кого-нибудь есть опыт, которым можно поделиться?

ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ

Спасибо всем за ваши ответы. Я решил использовать электронную почту как идентификатор, но затем разрешить создание имени пользователя для входа в систему после регистрации. Это обеспечивает небольшую гибкость при сохранении максимально короткой регистрации. Это также предотвращает проблемы, когда пользователь меняет адреса электронной почты (они могут просто войти в систему со своим именем пользователя и обновить его). Я также буду внедрять методы, предотвращающие грубое принуждение адресов электронной почты вне систем регистрации и входа в систему (в основном период охлаждения после повторных попыток).

Ответы [ 15 ]

2 голосов
/ 15 марта 2009

PRO

Люди ненавидят создавать уникальное имя, которое соответствует их идентификатору, и которое еще не было зарегистрировано для регистрации на сайте. Вот почему идентификатор пользователя как EMAIL ADDRESS так воспринимается.

ex : TStamper1930, который на самом деле хочет вспомнить 1930 год в конце моего имени, который я действительно хотел

1 голос
/ 30 января 2010

Чтобы решить ваш мошеннический вопрос, слишком длинный текст, чтобы его вводить каждый раз. Я реализовал библиотеку 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

и т.д ..

Затем просто измените метод входа в систему, чтобы разрешить либо пароль, либо адрес электронной почты, либо логин.

Это работает так же, как Google или MobileMe. Пользователь может просто ввести свое имя пользователя электронной почты (то есть имя пользователя вместо username@gmail.com.)

1 голос
/ 15 марта 2009

Хорошая настройка - требовать имя пользователя и адрес электронной почты. Разрешение пользователю войти в систему либо с адресом электронной почты, либо с именем пользователя очень удобно для пользователя. Дополнительным преимуществом является то, что пользователь может изменить свой адрес электронной почты. Это также позволило бы использовать несколько учетных записей для одного письма.

1 голос
/ 15 марта 2009

Одним из доводов может быть то, что, если это адрес электронной почты, логин может быть угадан людьми и предприняты попытки перебора. Что не является большой проблемой, так как на большинстве сайтов сегодня логины отображаются публично.

Самый большой плюс в том, что логины легче запомнить таким образом.

0 голосов
/ 02 мая 2016

Если вам не нужно заставлять своих пользователей входить в ваше приложение через Facebook или какую-либо другую социальную сеть (большинство людей не заботятся об этом), то вы можете просто использовать электронную почту их социальной сети в качестве своего «идентификатора пользователя». 'при ссылках на другие таблицы / документы (MySQL, Mongo и т. д.).

Я заметил, что бонусом к использованию логинов в социальных сетях является то, что вся социальная сеть позаботилась о безопасности, в том числе не позволяя двум пользователям иметь одинаковые адреса электронной почты или имена пользователей в своей базе данных, тем самым избавляя вас от хлопот приходится кодировать все это. Это всего лишь мое личное предпочтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...