Каковы плюсы и минусы использования адреса электронной почты в качестве идентификатора пользователя?

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

ПРОФИ

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

  • Адрес электронной почты легче запомнить. (спасибо Mitch, Jeremy)

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

CONS

  • Пользователь имеет больше, чтобы вводить каждый раз при входе в систему.

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

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

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

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

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

  • Не все имеют адрес электронной почты. (спасибо Nicholas)

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

Другой вариант - это реализовать OpenID (это еще одна дискуссия).

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

ОКОНЧАТЕЛЬНОЕ ИЗОБРАЖЕНИЕ

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

Ответ 1

Я предпочитаю не использовать списки pro/con, а вместо этого стараюсь думать о преимуществах и проблемах.

Проблема:

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

Вместо

Вам следует подумать о том, чтобы позволить пользователю предоставлять несколько адресов, а также идентификатор, выбранный пользователем, а затем разрешить пользователю решать, что они хотят делать. Возможно, также подумайте о том, чтобы позволить пользователю предоставлять учетную запись OpenID.

Ответ 2

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

Только мои 2 цента!

Ответ 3

Я думаю, вы пропустили PRO:

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

Ответ 4

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

Кроме того, мне нравится OpenID.

Ответ 5

CONS

  1. Когда один и тот же пароль используется для учетной записи электронной почты, компрометация его автоматически означает компрометацию другой.

Ответ 6

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

Выучил этот трудный путь.

Ответ 7

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

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

Ответ 8

PRO

Люди не любят создавать уникальное имя, которое соответствует их идентификатору, и которое еще не было принято для регистрации на сайте. Именно поэтому идентификатор пользователя как АДРЕС ЭЛЕКТРОННОЙ ПОЧТЫ так обнимается.

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

Ответ 9

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

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

Ответ 10

CON: Если я изменю свой адрес электронной почты, внезапно все мои имена учетной записи недействительны. Мое имя не меняется, но моя электронная почта часто делает. Я несколько раз пересматривал сайт после нескольких лет и застрял... что было моим адресом электронной почты два года назад???

Ответ 11

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

Вы не должны беспокоиться о том, что они слишком длинны, поскольку все основные браузеры (IE, FF и т.д.) предлагают автозаполнение форм, которые включены по умолчанию, поэтому вы вводите первые буквы в своем письме, и вы получаете (т.е. список автозаполнения), где вы просто щелкаете, чтобы ввести весь адрес электронной почты, лично я почти никогда не набираю адрес электронной почты полностью, я всегда печатаю первые буквы и выбираю сообщение из раскрывающегося списка автозаполнения. Кроме того, если вы позволяете пользователям запоминаться (используя флажок "Запомнить меня" и постоянные куки файлы), это будет еще одна причина не беспокоиться об этом.

Я не знаю о вашем приложении, но обычно пользователи, имеющие несколько учетных записей, нежелательны в большинстве приложений.

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

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. Пользователь может выбрать просто ввести свое имя пользователя электронной почты (то есть имя пользователя вместо [email protected])

Ответ 15

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

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